有时你会遇到心灵冻结,并想想你是怎么做到的。我正在执行下面的SQL并且需要特定格式的答案,但是无法解决它。
SELECT DATEDIFF ( mm, '2017-03-07 14:00:00.0000000 +00:00' , '2017-03-07 12:45:00.0000000 +00:00' )
需要这种格式的答案吗? 01:15:00.0000000(hh:mm:ss.0000000)
有什么想法吗?
答案 0 :(得分:1)
使用CONVERT
SELECT CONVERT(TIME, COLUMN1 - COLUMN2)
FROM TABLE
答案 1 :(得分:1)
假设你的时间跨度可能超过24小时并且你没有请求#天,只有几个小时,你可以使用它。
declare @StartDate varchar(64) = '2017-03-05 12:45:00.0000000 +00:00'
declare @EndDate varchar(64) = '2017-03-07 14:00:00.0000000 +00:00'
declare @seconds int = DATEDIFF(second,@StartDate,@EndDate)
SELECT
RIGHT('00'+CAST(@seconds/3600 AS VARCHAR), 2) + ':' +
RIGHT('00'+CAST(@seconds/60 AS VARCHAR), 2) + ':' +
RIGHT('00''00'+CAST(@seconds % 60 AS VARCHAR) , 2) +
CAST(0000000 AS VARCHAR(7)) AS [HH:MM:SS:MS]
答案 2 :(得分:1)
又一个选择:
示例强>
Declare @D1 varchar(50) = '2017-03-07 12:45:00.0000000 +00:00'
Declare @D2 varchar(50) = '2017-03-07 14:00:00.0000000 +00:00'
SELECT format(dateadd(Second,datediff(SECOND,convert(datetime2,@D1),convert(datetime2,@D2)),0),'HH:mm:ss.0000000')
<强>返回强>
01:15:00.0000000