SQLで日時の経過時間(hh:mm:ss)を抽出する


SQLServerで2つの日付の経過時間を抽出するには、以下のSQLで抽出できます。
処理に掛かった時間(タイムスパン)を求めたい時などに使えます。

SQL


DECLARE @出勤時間 DATETIME = '2019-04-17 08:45:23.900'
DECLARE @終了時間 DATETIME = '2019-04-17 18:00:25.080'

SELECT                  
 @出勤時間 AS 出勤時間 
,@終了時間 AS 終了時間 
,CONVERT(CHAR(12), 
    DATEADD(SECOND, 
        DATEDIFF(SECOND, @出勤時間, @終了時間), CONVERT(DATETIME, 0)), 108) AS 経過時間
,CONVERT(CHAR(12), 
    DATEADD(MILLISECOND, 
        DATEDIFF(MILLISECOND, @出勤時間, @終了時間), CONVERT(DATETIME, 0)), 114) AS [経過時間(ミリ秒)];

抽出結果

出勤時間 退勤時間 勤務時間 勤務時間(ミリ秒)
2019-04-17 15:49:23.900 2019-04-17 15:50:25.080 00:01:02 00:01:01:180