2013-07-18 118 views
3

我有這樣的查詢:日期時間差獲得小時:分鐘:秒

select t.Paydate,t.DelDate,DATEDIFF(MI, t.Paydate,t.DelDate) as Datdiffernce 
from Transaction_tbl t 
where t.transactID=19 

我得到了把這樣的:

Paydate     DelDate     Datdiffernce 
----------------------- ----------------------- ------------ 
2013-05-07 18:36:50.000 2013-05-07 18:58:32.000  22 

Datedifference我只得到22薄荷糖。

而不是如何得到這種格式的日期差異hh:mm:ss

+0

您將需要使用類似dateadd(s,datediff(s,t.paydate,t.deldate)之類的內容作爲過期參考http://msdn.microsoft.com/en-us/library/ms186819.aspx查看MSDN鏈接 –

+0

我想走出0小時:22分鐘:00秒,是否有任何方式擺脫這種格式 – user2535939

+0

可能重複的[用t-sql計算時間跨度](http://stackoverflow.com/questions/758891/計算時間與T - SQL的時間) –

回答

5

試試這個,

SELECT convert(varchar(10),DATEDIFF(hour,t.Paydate,t.DelDate))+'hr:' 
     +convert(varchar(10),DATEDIFF(minute,t.Paydate,t.DelDate)% 60) + 'mnts:' 
     +convert(varchar(10),DATEDIFF(SECOND,t.Paydate,t.DelDate)% 60) +'seconds' 
     AS 'DIFF IN HH:MM:SS' 
FROM Transaction_tbl t 
WHERE t.transactID=19 
+0

yes.thanks ,,這對我來說工作得很好 – user2535939

+1

if @startdate ='2013-10-01 15:05:17'and @ enddate ='2013-10-01 15:10:16'然後上面的代碼給出5分鐘:59秒,但實際差異是4分鐘:59秒 – MNVR

0
Declare @starttime datetime, @endtime datetime, @seconds int 

Set @starttime ='2013-10-01 15:05:17' 
Set @endtime = '2013-10-01 15:10:16' 

set @seconds = DateDiff(second, @starttime, @endtime) 
Select Convert(varchar(10), @seconds/3600) + 'hr:' 
     +Convert(varchar(10), (@seconds % 3600)/60) + 'mnts:' 
     +Convert(varchar(10), (@seconds % 3600) % 60) + 'seconds' 

參考:See here

0

我在一個類似的問題回答This,它可能會給你像7時07分07秒,而不是7東西:7:7

相關問題