我在Azure服务器上运行了一个.net应用程序,该服务器设置为PST,并连接到设置为UTC时间的Azure SQL服务器。我在很多存储过程中使用函数getDate()。前进的时区将是一个关键问题,需要让它们同步。使用DateAdd(小时,-8,getDate())函数不会考虑夏令时。我想知道是否有更好的方法来解决这个问题。
答案 0 :(得分: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)
后几乎所有问题都已解决。