T-SQL是否有辦法將GMT轉換爲中央時間,以補償夏令時。DateTimeOffset存儲爲格林威治標準時間轉換爲中央時間
看起來SWITCHOFFSET
只接受格式爲[+|-]TZH:TZM
的字符串或表示時區偏移的有符號整數(分鐘),並假定爲夏令時已知和調整。
T-SQL是否有辦法將GMT轉換爲中央時間,以補償夏令時。DateTimeOffset存儲爲格林威治標準時間轉換爲中央時間
看起來SWITCHOFFSET
只接受格式爲[+|-]TZH:TZM
的字符串或表示時區偏移的有符號整數(分鐘),並假定爲夏令時已知和調整。
這並不容易,有很多與時區轉換相關的問題。即如果要轉換去年8月份的日期,會發生什麼情況,您需要知道當記錄時間時DST是否適用。
這是在最新版本中使用datetimeoffset類型修復的。這記錄了UTC時間加上記錄日期時間時的有效偏移量。這使得使用時區更容易。
這裏是一個鏈接The death of datetime
我遇到的問題是我正在查找中央時間指定的2次之間的記錄,並且數據以GMT時間存儲在datetimeoffset中,所以這是導致我遇到問題的DST問題 –
如果兩者都存儲在一個datetimeoffset字段,那麼SQL應該使用存儲的UTC日期時間正確地進行比較。正如巴特在鏈接中所說,我剛剛添加了「SQL將做正確的事情」 –
我不明白你爲什麼要在SQL Server上做到這一點。 –