2015-09-04 62 views
0

我們有成千上萬的存儲在SQL Server數據庫中的歷史UTC日期時間的,我們現在要改變這些列使用datetimeoffset數據類型(目前datetime轉換存儲UTC日期DATETIMEOFFSET數據類型

所以我已經改變了列並更改了數據類型。現在他們都有一個'+00:00'抵消。

既然我們在新西蘭,我猜接下來我們只需要使用SWITCHOFFSET更新數據,其中'+12:00'偏移?

然而,這不會考慮DST,它使DST期間的偏移'+13:00'?

有沒有辦法在SQL中執行此操作,而無需將映射表映射到歷史時段的DST切換日期?

感謝

+0

決定將它們保留爲utc'datetime',偏移量爲'+00:00' – raydenl

回答

0

保持它們作爲+00:00是完全沒有問題。但是,如果要將它們投影到特定時區(包括DST計算),則可以使用我的SQL Server Time Zone Support項目中的SwitchZone方法。

UPDATE yourtable SET dto = Tzdb.SwitchZone(dto, 'Pacific/Auckland')