有时候你会经历一次思维冻结,并认为你是如何做到这一点的。我正在执行下面的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)
任何想法?
有时候你会经历一次思维冻结,并认为你是如何做到这一点的。我正在执行下面的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)
任何想法?
还有另一个选择:
例
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
正确答案。谢谢其他2名响应者,但这是唯一能够提供所需内容的人。 –
@JamesKhan对它有帮助 –
使用convert
SELECT CONVERT(TIME, COLUMN1 - COLUMN2)
FROM TABLE
假设你的时间跨度可能超过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]
我假设你的意思是 “米” 为分钟,你有个月。鉴于此,这让你更接近:'SELECT DATEADD(mi,ABS(DATEDIFF(MINUTE,'2017-03-07 14:00:00.0000000 +00:00','2017-03-07 12:45:00.0000000 +00 :00')),0)' – CaseyR