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

如何在 SQL Server 中將 UTC 日期時間轉換為本機時間?

DDD
發布: 2025-01-17 04:34:10
原創
485 人瀏覽過

How to Convert UTC Datetime to Local Time in SQL Server?

在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中文網其他相關文章!

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