我有这个查询正确地将中欧时间返回为 +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



然后将 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);

sqlfiddle

关于SQL - 在时区,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52993652/

10-11 07:38