sql - SQL - 在时区
问题描述
我有这个查询正确地将中欧时间返回为 +2 小时。但是,它不会将这两个小时添加到时间中。如何添加这两个小时的时间(或 x 小时,具体取决于时区)?
DECLARE @targettimezone AS sysname = 'Central European Standard Time'
SELECT convert(datetime2,'2018-10-25T13:43:19.296Z') AT TIME ZONE @targettimezone;
解决方案
您可以尝试使用datetimeoffset而不是datetime2
.
定义与具有时区意识且基于 24 小时时钟的一天中的某个时间相结合的日期。
然后将其转换datetimeoffset
为DateTime
可以得到您期望的结果。
DECLARE @targettimezone AS sysname = 'Central European Standard Time'
SELECT cast(cast('2018-10-25T13:43:19.296Z' as datetimeoffset) AT TIME ZONE @targettimezone as datetime2);
推荐阅读
- python-3.x - AttributeError:“dict_values”对象没有属性“get”
- android - Google Lite 地图显示的信息比普通地图多得多
- javascript - 如何将多个 SVG 居中到同一点?
- c++ - 如何在 GDB 中以十六进制打印双精度位?
- c# - C# - 等待超时后如何取消任务?
- javascript - 获取“buffered.end(0)”的最后一个索引?
- java - 将 Java 枚举值链接到动态实例化的对象
- ruby-on-rails - Rails + Ahoy gem + 设置额外的 cookie
- r - 为什么类函数不将向量视为R中的向量?
- windows - 在我的 Powershell 脚本中,为什么管理员用户会看到 AD 用户对象的“启用”属性值,而另一个“管理员”用户却看不到?