2016-11-23 137 views
0

我得到的時間差值爲5.5,應該從當前日期時間減去5小時30分鐘。添加當前時間的偏移量

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

在輸出中只減去5小時。 我總是得到一個價值形式的偏移5.5或13.5同樣取決於時區..

這是可能嗎?

回答

0

我總是在這種形式得到的值偏移5.5或13.5同樣取決於時區..

然後,你可以乘以60的值,並使用minute日期部分

select Dateadd(MINUTE, -5.5 * 60,GETUTCDATE()) 
0

時間算術始終工作在全單位 - 使用-330分鐘,而不是

select Dateadd(MINUTE, -330,GETUTCDATE()),GETUTCDATE() 

的輸入功能,旨在爲整數(整數) - 你可能會發現,-5.5被截斷關閉小數部分

0

是的,這是可以做到的。首先,你需要將你的十進制偏移量轉換成分鐘。然後像以前一樣使用DATEADD

DECLARE @Offset DECIMAL(18, 2) = 5.5; 
DECLARE @Mins INT    = 60 * @Offset; 

-- Offsetting by decimal time values. 
SELECT 
    DATEADD(MINUTE, @Mins, GETDATE()) 
;