[英]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:30
: 10:12:30
: 10:12:30
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.