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)
后,几乎所有的问题都解决了。