2017-08-03 99 views
3

我有一個.net應用程序運行在設置爲PST的Azure服務器上,它連接到設置爲UTC時間的Azure SQL服務器。我在很多存儲過程中使用函數getDate()。未來的時區將是一個關鍵問題,需要讓它們同步。使用函數DateAdd(小時,-8,getDate())不考慮夏令時。我想知道是否有更好的方法來處理這個問題。Azure SQL數據庫時間問題

回答

3

將您所有的datetime列更改爲datetimeoffset(7)列。這些列存儲時區信息以及日期和時間。

將您的GETDATE()電話更改爲SYSDATETIMEOFFSET()

最後,您可以使用關鍵字AT TIME ZONE轉換存儲的時間信息:

SELECT *, 
     [Time] AT TIME ZONE 'Pacific Standard Time' AS PstTime 
FROM  TheTable 
  • 我已經試過datetime值始終存儲UTC(或任何其他任意區),並一直運行到問題。切換到datetimeoffset(7)後,幾乎所有的問題都解決了。