3
我有一個.net應用程序運行在設置爲PST的Azure服務器上,它連接到設置爲UTC時間的Azure SQL服務器。我在很多存儲過程中使用函數getDate()。未來的時區將是一個關鍵問題,需要讓它們同步。使用函數DateAdd(小時,-8,getDate())不考慮夏令時。我想知道是否有更好的方法來處理這個問題。Azure SQL數據庫時間問題
我有一個.net應用程序運行在設置爲PST的Azure服務器上,它連接到設置爲UTC時間的Azure SQL服務器。我在很多存儲過程中使用函數getDate()。未來的時區將是一個關鍵問題,需要讓它們同步。使用函數DateAdd(小時,-8,getDate())不考慮夏令時。我想知道是否有更好的方法來處理這個問題。Azure SQL數據庫時間問題
將您所有的datetime
列更改爲datetimeoffset(7)
列。這些列存儲時區信息以及日期和時間。
將您的GETDATE()
電話更改爲SYSDATETIMEOFFSET()
。
最後,您可以使用關鍵字AT TIME ZONE
轉換存儲的時間信息:
SELECT *,
[Time] AT TIME ZONE 'Pacific Standard Time' AS PstTime
FROM TheTable
datetime
值始終存儲UTC(或任何其他任意區),並一直運行到問題。切換到datetimeoffset(7)
後,幾乎所有的問題都解決了。