2つの日付(日時)値の差を計算する

 
文書番号:20518




2つの日付型データの差を求める関数です。

開始日から終了日まで何ヶ月経過したか、何日経過したか、
開始時刻から終了時刻まで何時間、何秒経過したかなどを計算します。

【関数】

DATEDIFF(求める要素,開始日(開始日時),終了日(終了日時))

【戻り値】

結果 説明
日付(日時)の差 2つのデータの差を指定した要素(日や時間)などで取得します。

【求める要素】

求める要素 長い形式 省略形
year yyyy,yy
3ヶ月 quarter qq,q
month mm,m
day dd,d
week wk,ww
時間 hour hh
minute mi,n
second ss,s

【サンプル】

2016/1/1から今日(GETDATE())までの日数を計算します。

SELECT datediff(day,'2016/1/1',getdate())
プロシージャの処理時間(秒)を計測します。

BEGIN

  -- 開始時刻を保持
  DECLARE @START datetime = GETDATE();

  -- =================================

  -- 実行する処理

  -- =================================

  -- 終了時刻を保持
  DECLARE @END datetime = GETDATE();

  -- 経過時間(秒)を計算する
  SELECT datediff(second ,@START ,@END);

END

【参考情報】

[MSDN] DATEDIFF (Transact-SQL)
https://msdn.microsoft.com/ja-jp/library/ms189794.aspx