【问题标题】:How to identify daylight savings time implementation point in SQL Server如何在 SQL Server 中识别夏令时实施点
【发布时间】:2018-12-04 10:56:56
【问题描述】:

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

我知道 sys.time_zone_info 中有一个 is_currently_dst 标志,但是我正在寻找改变它自身的具体点。

这可以在 SQL Server 中动态识别吗?

【问题讨论】:

  • 你真的在使用所有这些 sql server 版本吗?

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-09-30
    • 2010-10-22
    • 2012-11-07
    • 2013-04-20
    • 2014-11-03
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    相关资源
    最近更新 更多