【问题标题】:Inserting a UTC offset datetime into SQL changes the time - Why?将 UTC 偏移日期时间插入 SQL 会更改时间 - 为什么?
【发布时间】:2015-05-13 09:56:36
【问题描述】:

我有一个日期 2015-03-11T08:43:19.7810000-05:00 我要插入到 MSSQL2008 数据库表的日期时间字段中。

我已验证我的 SQL 数据库当前处于夏令时。

美国东海岸是 -5 偏移量。

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

这会告诉我某些 UTC 或时区转换不起作用。

我什至让我的 DBA 看过这个,但无法弄清楚。

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

谢谢。

【问题讨论】:

  • 是的,但是东海岸现在是 DST,实际上是 UTC-4,因此你的时差是一小时。

标签: sql sql-server datetime timezone utc


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多