簡體   English   中英

兩個日期之間的差異SQL Server

[英]Difference between two dates SQL Server

我正在尋找一種方法來獲得SQL Server中兩次之間的差異。

我想要一個格式hh:mm:ss

例如:23:00:00-18:09:00 = 04:51:00

我嘗試使用datediff()但它只返回小時,分鍾或秒

[編輯]:

例如:23:00:00 + 02:00:00 = 01:00:00,如何獲得25:00:00?

您可以將時間轉換為:

select dateadd(second, datediff(second, date1, date2), cast('0:00:00' as time))

然后,您可以使用format()convert()以所需的方式將值格式化為字符串。

Declare @T1 time = '23:00'
Declare @T2 time = '18:09'

Select cast(cast(@T1 as datetime) - cast(@T2 as datetime) as time)

退貨

04:51:00.0000000

或者,如果2012+,則可以使用Format()

Select format(cast(@T1 as datetime) - cast(@T2 as datetime),'HH:mm:ss')

退貨

04:51:00

盡管其他人已經正確回答了。 我想添加另一個版本。

declare @StartTime datetime, @EndTime datetime

select @StartTime = '08:40:18',@EndTime='18:52:48'

select  convert(varchar(5),DateDiff(s, @StartTime, @EndTime)/3600)+':'
    +   convert(varchar(5),DateDiff(s, @StartTime, @EndTime)%3600/60)+':'
    +   convert(varchar(5),(DateDiff(s, @StartTime, @EndTime)%60)) as [hh:mm:ss]

輸出: 10:12:3010:12:3010:12:30

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM