如何解决对于 DST 之前或之后的日期,如何获得 UTC 和本地时间之间的正确偏移量?
在 sql Server 2016 之前,将非当前 UTC 日期转换为本地时间的最佳方法是使用 Microsoft .Net 公共语言运行时或 CLR。
代码本身很简单;困难的部分通常是让人们相信 CLR 不是纯粹的邪恶或可怕......
不幸的是,在 sql Server 2016 之前没有任何内置可以处理这种类型的转换,除了基于 CLR 的解决方案。你可以编写一个 T-sql 函数来做这样的事情,但是你必须自己实现日期更改逻辑,我认为这绝对不容易。
解决方法
我目前使用以下方法从 UTC 日期时间获取本地日期时间:
SET @offset = DateDiff(minute,GetUTCDate(),GetDate())
SET @localDateTime = DateAdd(minute,@offset,@utcDateTime)
我的问题是,如果夏令时发生在GetUTCDate()
和之间@utcDateTime
,@localDateTime
最终会休息一个小时。
是否有一种简单的方法可以将非当前日期的日期从 UTC 转换为当地时间?
我正在使用 SQL Server 2005
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。