有什么方法可以直接设置列timeoffset
的datetimeoffset
,而不必使用SWITCHOFFSET
which 来更改日期?
在下面的帖子中,我们可以看到SWITCHOFFSET
将相应地更改日期以及设置时间偏移(这不是我们想要的):http:
//blog.sqlauthority.com/2010/07/15/sql-server-datetime-功能开关偏移示例/
例如,我将日期值设为“2013-02-10”,并希望将其记录在不同的时区,而不会丢失“2013-02-10”。只需将 timeoffset 设置为需要的值,例如:+11、-4、-6 等。
可能吗?
谢谢。
为了避免额外的 DateAdd (如果时区是一个变量可能会很困难),使用:
切换偏移量将考虑先前的偏移量(如果存在)。最好将原始值转换为日期时间以截断先前的偏移量,然后根据需要设置新的偏移量:
我们最终通过应用原始值与应用 SwitchoffSet 后的值之间的时间差来实现这一点,然后运行 SwitchOffSet 来创建时区偏移:
如您所见,原始日期值没有改变。