2017-07-31 17 views
0

いつか心が凍ってしまい、どうやってそれをすると思いますか?私は以下の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

私はあなたが持っている、あなたは分間 "ミ" を意味すると仮定しています月。これを考えると、これはあなたを近づけます: 'SELECT DATEADD(mi、ABS(DATEDIFF(分、 '2017-03-07 14:00:00.0000000 + 00:00'、 '2017-03-07 12:45:00.0000000 +00 :00 '))、0) ' – CaseyR

答えて

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 
+0

正解です。他の2人のレスポンダーに感謝しますが、これが必要なものを正確に与える唯一のものです。 –

+0

@JamesKhan幸せに助けた –

1

使用CONVERT

SELECT CONVERT(TIME, COLUMN1 - COLUMN2) 
FROM TABLE 
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]