執行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)。如果需要調整夏令時,請參考以下問題:
以上是如何在 SQL Select 語句中將 UTC 日期時間列轉換為本機時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!