2016-05-17 51 views
0

我的sql語句是這樣的:我用DATEDIFF減去我的時間,但我得到了答案0每次我執行

SELECT DATEDIFF(hh, TimeIn,OutTime) AS Hours_Rendered 
FROM DTR_TimeRecord 
+0

是什麼timeln和outtime的日期? –

+0

請編輯您的問題以包含樣本數據(最好是DDL + DML)和期望的結果。 –

+0

閱讀https://msdn.microsoft.com/en-us/library/ms189794.aspx,瞭解有關DATEDIFF如何工作的信息 – Alex

回答

0

請大家注意,DATEDIFF隱含蒙上字符串文字作爲datetime2的類型。這意味着當日期作爲字符串傳遞時,DATEDIFF不支持格式YDM。您必須明確地將字符串轉換爲datetime或smalldatetime類型才能使用YDM格式。

參考:https://msdn.microsoft.com/en-us/library/ms189794.aspx

0

你TimeIn和OutTime必須是同一時刻的。像

TimeIn : '2016-05-17 11:31:33.190' 
OutTime: '2016-05-17 11:35:41.790' 

select DATEDIFF(HH, '2016-05-17 11:31:33.190', '2016-05-17 11:35:41.790') 

上面的查詢將永遠給你0

不過,讓假設你OutTime是 '2016年5月17日12:35:41.790'

然後

select DATEDIFF(HH, '2016-05-17 11:31:33.190', '2016-05-17 12:35:41.790') 

以上查詢會給你1.

+0

謝謝我已經想通了,我想以這種格式顯示答案HH:MI:SS how我可以這樣做嗎? – Ralph

0

這一定會幫你

SELECT convert(TIME,dateadd(ms,DateDiff(ss, TimeIn, OutTime)*1000,0),114) AS Hours_Rendered 
FROM DTR_TimeRecord 
相關問題