将UTC偏移日期时间插入SQL会改变时间 - 为什么?

时间:2015-03-11 14:38:03

标签: sql sql-server datetime timezone utc

我有一个日期2015-03-11T08:43:19.7810000-05:00我正在插入MSSQL2008数据库表的datetime字段。

我已验证我的SQL数据库目前正在夏令时。

美国东海岸是-5偏移。

插入SQL后,立即将时间更改为上午9:43,添加一小时。

这会告诉我某些UTC或时区转换无效。

我甚至让我的DBA看过这个并且无法解决这个问题。

我认为我们应该存储具有UTC偏移量的日期时间,但是无法弄清楚为什么在上周末DST更改后这种情况刚刚开始发生。

感谢。

1 个答案:

答案 0 :(得分:2)

如果您希望保留偏移量,则需要将其存储到datetimeoffset字段中。

datetime个字段不保存偏移量。因为你提供了一个,所以它被应用但是时间被标准化为当地时区,当前时区是UTC-4的日期。