在SQL查詢中將UTC日期時間列轉換為本地時間
在SQL查詢中處理UTC日期時間有時可能不太方便,尤其是在需要以本地時區顯示它們時。 透過簡單的技術可以將UTC日期時間轉換為本地時間,從而無需基於程式碼的轉換。
SQL Server 2008及更高版本的解決方案:
對於SQL Server 2008或更高版本,請使用下列查詢:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
替代語法:
或者,您可以使用以下簡化版本:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
注意:避免減去日期
務必注意,不建議使用 - 運算子減去日期,因為這可能會由於競爭條件而導致不確定的結果。
考慮夏令時 (DST)
此提供的解決方案未考慮DST調整。如有必要,請參考以下Stack Overflow問題:
//m.sbmmt.com/link/95743904f0de5aa6327dee27efdc81b4
以上是如何在 SQL Server 中將 UTC 日期時間轉換為本機時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!