我得到5.5的时差值,它应该从当前日期时间减去5小时30分钟。
select Dateadd(HH, -5.5,GETUTCDATE()),GETUTCDATE()
在输出中它只减去5个小时。 我总是得到这个偏移5.5或13.5形式的值,具体取决于时区..
这可能吗?
答案 0 :(得分:0)
时间算术始终以整个单位运行 - 使用-330分钟
select Dateadd(MINUTE, -330,GETUTCDATE()),GETUTCDATE()
函数的输入是一个整数(整数) - 你可能会发现-5.5正在截断小数部分
答案 1 :(得分:0)
是的,这可以做到。首先,您需要将十进制偏移量转换为分钟。然后您可以像以前一样使用DATEADD。
DECLARE @Offset DECIMAL(18, 2) = 5.5;
DECLARE @Mins INT = 60 * @Offset;
-- Offsetting by decimal time values.
SELECT
DATEADD(MINUTE, @Mins, GETDATE())
;
答案 2 :(得分:0)
我总是以偏差5.5或13.5的形式获得一个值,具体取决于时区..
然后,您可以将该值乘以60并使用minute
datepart
select Dateadd(MINUTE, -5.5 * 60,GETUTCDATE())