添加当前时间的偏移量

时间:2016-11-23 11:11:54

标签: sql-server

我得到5.5的时差值,它应该从当前日期时间减去5小时30分钟。

select Dateadd(HH, -5.5,GETUTCDATE()),GETUTCDATE()

在输出中它只减去5个小时。 我总是得到这个偏移5.5或13.5形式的值,具体取决于时区..

这可能吗?

3 个答案:

答案 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())