2015-06-14 149 views
2

我想減去兩個日期時間值:減去兩個日期時間值

我已經開始日期時間#2015-06-14 23:00:00#結束日期時間#2015-06-15 01:01:00#

我想通過時間格式的時間像HH:MM:SS並更新它在持續時間列我嘗試下面的代碼,但它沒有工作。

update [ZainJTA].[dbo].[TBL_Justification] 
set [Justification_Event_Duration]=CONVERT(Datetime,(DateDiff("n",[Justification_From],[Justification_TO])/60/24),108) 
+0

我想你可以直接相減,讓你的日期時間類型結果。如果你願意的話,你可以把它轉化爲時間。它在顯示部分非常重要。我會使用datediff(第二...)並將其存儲爲整數。 – Tim3880

+0

如果持續時間超過24小時,該怎麼辦? –

回答

1

DATEDIFF返回INT,所以它除以另外兩個INT s的要給你 - 另一個INT,最有可能爲零。

嘗試:

CONVERT(Datetime,(DateDiff(s,[Justification_From],[Justification_TO])/60.0/60/24),108) 

(60.0將觸發轉換爲浮點格式。)

但是,它可能會更有意義它作爲一個秒數(整數),並且只有在輸出它時才執行CONVERT顯示。

顯示爲只是的時候,沒有天/年的一部分,你也需要做第二次轉換:

CONVERT(VARCHAR, CONVERT(Datetime, 
    (DateDiff(s,[Justification_From],[Justification_TO])/60.0/60/24),108),108)