夏令时于2018年3月25日(星期日)凌晨1点生效,并将在我所在时区的2019年3月29日(星期日)凌晨1点再次生效。
我知道sys.time_zone_info中有一个is_currently_dst标志,但是我想确定更改其自身的特定点。
能否在SQL Server中动态识别此问题?
答案 0 :(得分:1)
简短的回答:不。长答案:这是特定于操作系统的,目前,SQL Server除了非常简单的sync.Pool
以外,还没有提供DST规则的抽象。
您可以获取时区信息,并使用专门的客户端库来获取调整规则。 .NET具有TimeZoneInfo
,您可以使用CLR函数将该信息反映回SQL Server。还有third-party support(免责声明:没有经验)。
或者,2016年提供AT TIME ZONE
进行某些计算,这可能满足您的目的,也可能不够。它不允许您直接识别以前的更改,但可以使您确定DST是否对任何特定点都有效(通过比较时区偏移量与已知点)。