T-SQL是否有办法将GMT转换为中央时间,以补偿夏令时。DateTimeOffset存储为格林威治标准时间转换为中央时间
看起来SWITCHOFFSET
只接受格式为[+|-]TZH:TZM
的字符串或表示时区偏移的有符号整数(分钟),并假定为夏令时已知和调整。
T-SQL是否有办法将GMT转换为中央时间,以补偿夏令时。DateTimeOffset存储为格林威治标准时间转换为中央时间
看起来SWITCHOFFSET
只接受格式为[+|-]TZH:TZM
的字符串或表示时区偏移的有符号整数(分钟),并假定为夏令时已知和调整。
这并不容易,有很多与时区转换相关的问题。即如果要转换去年8月份的日期,会发生什么情况,您需要知道当记录时间时DST是否适用。
这是在最新版本中使用datetimeoffset类型修复的。这记录了UTC时间加上记录日期时间时的有效偏移量。这使得使用时区更容易。
这里是一个链接The death of datetime
我遇到的问题是我正在查找中央时间指定的2次之间的记录,并且数据以GMT时间存储在datetimeoffset中,所以这是导致我遇到问题的DST问题 –
如果两者都存储在一个datetimeoffset字段,那么SQL应该使用存储的UTC日期时间正确地进行比较。正如巴特在链接中所说,我刚刚添加了“SQL将做正确的事情” –
我不明白你为什么要在SQL Server上做到这一点。 –