在 SQL 查詢中有效地將 UTC 日期時間轉換為本地時間
許多資料庫系統以 UTC 格式儲存時間戳記以保持一致性。 本指南示範如何直接在 SQL 查詢中將這些 UTC 日期時間列轉換為本機時間,從而無需外部程式碼。
SQL Server 2008 及更高版本:
此方法利用 SWITCHOFFSET
函數進行精確轉換:
<code class="language-sql">SELECT CONVERT(datetime, SWITCHOFFSET(CONVERT(datetimeoffset, MyTable.UtcColumn), DATENAME(TzOffset, SYSDATETIMEOFFSET()))) AS ColumnInLocalTime FROM MyTable</code>
替代(詳細)方法:
更直接但不太優雅的方法使用 DATEADD
和 DATEDIFF
:
<code class="language-sql">SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), MyTable.UtcColumn) AS ColumnInLocalTime FROM MyTable</code>
主要考慮因素:
-
) 可能會產生不可預測的結果。 上述方法避免了這個問題。 此資訊可讓您直接在 SQL 查詢中執行高效且準確的 UTC 到本機時間轉換。
以上是如何在 SQL 中將 UTC 日期時間列轉換為本機時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!