首頁 > 資料庫 > mysql教程 > 如何在保留偏移量的同時將 SQL Server 2008 DATETIMEOFFSET 轉換為 DATETIME?

如何在保留偏移量的同時將 SQL Server 2008 DATETIMEOFFSET 轉換為 DATETIME?

Susan Sarandon
發布: 2024-12-29 21:12:15
原創
990 人瀏覽過

How to Convert SQL Server 2008 DATETIMEOFFSET to DATETIME While Preserving the Offset?

在保留偏移量的同時將DATETIMEOFFSET 轉換為DateTime

在SQL Server 2008 欄位中,將DATETIMEOFFSET 欄位會導致遺失由於偏移而產生的時間資訊。但是,有一種方法可以在保留偏移量的同時轉換值,有效地將其轉換為 UTC。

此轉換的關鍵在於使用具有正確樣式參數的 CONVERT 函數。 style 參數指定如何執行轉換。為此,我們需要使用樣式 1:

SELECT CONVERT(datetime2, @createdon, 1)
登入後複製

上述查詢採用 DATETIMEOFFSET 變數 (@createdon) 並使用樣式 1 將其轉換為 DATETIME2 值。此樣式將 DATETIMEOFFSET 值轉換為UTC 中的 DATETIME2 值減去偏移量。

例如,考慮以下DATETIMEOFFSET value:

2008-12-19 17:30:09.0000000 +11:00
登入後複製

如果我們使用樣式1 轉換此值,我們會得到:

2008-12-19 06:30:09.0000000
登入後複製

此結果採用UTC 時間,有效地消除了偏移量。

請注意,使用樣式 1 從 DATETIME2 轉換為 DATETIMEOFFSET 只是將偏移設定為 00:00。這可以用作將具有非零偏移量的 DATETIMEOFFSET 值轉換為 UTC 格式的 DATETIMEOFFSET 值的快速方法:

SELECT convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
登入後複製

以上是如何在保留偏移量的同時將 SQL Server 2008 DATETIMEOFFSET 轉換為 DATETIME?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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