小编Jer*_*Jer的帖子

为什么 SQL Server 中没有“夏令时”时区?

我正在将一些 datetimeoffset 列的时间从 UTC 转换为东部时间。我通过命令执行此操作

UPDATE MyTable SET MyColumn = MyColumn AT TIME ZONE 'Eastern Standard Time'
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常(时间提前了 4 小时,现在有 -04:00 偏移量,正是我想要的),但后来我意识到这不是 EST,现在是 EDT。

SELECT * FROM sys.time_zone_info 
Run Code Online (Sandbox Code Playgroud)

给我一个时区列表,但没有“东部夏令时间”,只有“东部标准时间”。有一个“is_current_dst”列似乎是正确的。但据我所知,谈论时区“东部标准时间”是否处于 DST 是没有任何意义的。东部标准时间意味着它不是夏令时。“东部夏令时”的意思是夏令时。对我来说,这似乎是获得一个动物列表,列表中没有“Dog”和“Cat”,只有“Dog”,带有“isCat”标志!

我很困惑为什么时区被称为“东部标准时间”(以及为什么我上面的更新语句将时间转换为东部夏令时间(又名 UTC -04:00)。

时区名称是否不正确,它实际上应该只是“东部时间”之类的内容,并带有标志告诉当前是 EST 还是 EDT?

或者我只是完全困惑?

sql-server timezone

3
推荐指数
1
解决办法
3233
查看次数

标签 统计

sql-server ×1

timezone ×1