首頁 > 資料庫 > mysql教程 > 如何在 SQL Select 語句中將 UTC 日期時間列轉換為本機時間?

如何在 SQL Select 語句中將 UTC 日期時間列轉換為本機時間?

Patricia Arquette
發布: 2025-01-17 04:27:10
原創
752 人瀏覽過

How to Convert UTC Datetime Columns to Local Time in SQL Select Statements?

在SQL Select 語句中將UTC 日期時間列轉換為本地時間

執行SQL select 查詢時,可能需要將UTC 日期時間列轉換為本地時間,以方便更輕鬆的操作解釋和展示。這種轉換無需修改資料庫或使用外部程式碼即可完成。

轉換方法

在SQL Server 2008 或更高版本中,可以使用以下語法:

SELECT CONVERT(datetime, 
               SWITCHOFFSET(CONVERT(datetimeoffset, 
                                    MyTable.UtcColumn), 
                            DATENAME(TzOffset, SYSDATETIMEOFFSET()))) 
       AS ColumnInLocalTime
FROM MyTable
登入後複製

更短的替代方案是:

SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) 
       AS ColumnInLocalTime
FROM MyTable
登入後複製

注意事項

避免使用減法(-)來計算日期差異非常重要,因為這種方法可能會因非原子操作而導致結果不準確。

DST 調整

提供的方法不考慮夏令時 (DST)。如果需要調整夏令時,請參考以下問題:

  • [如何在SQL Server 中建立夏令時開始和結束函數](https://stackoverflow.com/questions/2614192/how -在sql伺服器中建立夏令時時間開始和結束功能)

以上是如何在 SQL Select 語句中將 UTC 日期時間列轉換為本機時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板