如何在SQL Server中确定夏令时实施点

时间:2018-12-04 10:56:57

标签: sql-server sql-server-2012 sql-server-2014 sql-server-2016

夏令时于2018年3月25日(星期日)凌晨1点生效,并将在我所在时区的2019年3月29日(星期日)凌晨1点再次生效。

我知道sys.time_zone_info中有一个is_currently_dst标志,但是我想确定更改其自身的特定点。

能否在SQL Server中动态识别此问题?

1 个答案:

答案 0 :(得分:1)

简短的回答:不。长答案:这是特定于操作系统的,目前,SQL Server除了非常简单的sync.Pool以外,还没有提供DST规则的抽象。

您可以获取时区信息,并使用专门的客户端库来获取调整规则。 .NET具有TimeZoneInfo,您可以使用CLR函数将该信息反映回SQL Server。还有third-party support(免责声明:没有经验)。

或者,2016年提供AT TIME ZONE进行某些计算,这可能满足您的目的,也可能不够。它不允许您直接识别以前的更改,但可以使您确定DST是否对任何特定点都有效(通过比较时区偏移量与已知点)。