有時候你會經歷一次思維凍結,並認爲你是如何做到這一點的。我正在執行下面的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