SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

SQL ServerのDATEDIFF関数とは?使い方を構文と具体例で徹底解説

本記事では、SQL Serverの日付・時刻関数である DATEDIFF関数 の使い方を、構文と具体的なサンプルコード付きで詳しく解説します。イメージしやすいよう実行結果も併せて紹介するので、初めての方でもすぐに理解できる内容となっています。

DATEDIFF関数の概要

DATEDIFF関数は、指定した時間単位(datepart)に基づいて、2つの日付・時刻の値の差を返す関数です。引数として渡す2つの値は、日付、または日付と時刻を含む式である必要があります。

基本構文

SQL ServerでDATEDIFF関数を使う場合、以下の構文を使用します。

DATEDIFF(datepart, startdate, enddate)

パラメータの説明

  1. datepart:startdateとenddateの差を計算する際に使用する時間の単位。指定できる値は以下の表の通りです。
  2. startdate / enddate:差を計算する対象となる2つの日付・時刻の値。

datepartに指定できる値の一覧

値意味
year, yyyy, yy年
quarter, qq, q四半期
month, mm, m月
dayofyear年間通算日
day, dy, y日
week, ww, wk週
weekday, dw, w曜日
hour, hh時
minute, mi, n分
second, ss, s秒
millisecond, msミリ秒

注意点

  • DATEDIFF関数は、SQL Server 2005以降のバージョン(SQL Server 2008、2008 R2、2012、2014、2016、2017など)で使用できます。
  • 戻り値は「実際の経過時間」ではなく、指定した単位の境界を何回跨いだかを表す整数です。例えば hour を指定して 08:00 と 10:45 の差を求めると、実際の差は2時間45分ですが、結果は「2」となります。

使用例

それでは、DATEDIFF関数の具体的な使用例を見ていきましょう。さまざまなdatepartを指定したパターンを確認できます。

年(year)の差を求める

SELECT DATEDIFF(year, '2019/04/28', '2021/04/28');
-- 結果: 2

yyyy や yy は year の省略形なので、どれを指定しても同じ結果になります。

SELECT DATEDIFF(yyyy, '2019/04/28', '2021/04/28');
-- 結果: 2

SELECT DATEDIFF(yy, '2019/04/28', '2021/04/28');
-- 結果: 2

月(month)の差を求める

SELECT DATEDIFF(month, '2019/01/01', '2019/04/28');
-- 結果: 3

日(day)の差を求める

SELECT DATEDIFF(day, '2019/01/01', '2019/04/28');
-- 結果: 117

時(hour)の差を求める

SELECT DATEDIFF(hour, '2019/04/28 08:00', '2019/04/28 10:45');
-- 結果: 2

分(minute)の差を求める

SELECT DATEDIFF(minute, '2019/04/28 08:00', '2019/04/28 10:45');
-- 結果: 165

このようにDATEDIFF関数を使えば、年・月・日・時・分など任意の単位で2つの日付の差を簡単に計算できます。ログの経過時間の集計や期間の判定など、日常的なデータベース操作で非常に役立つ関数なので、ぜひ活用してみてください。

  1. 【SQL Server】AVG関数の使い方を徹底解説!基本構文から実用例まで

    本記事では、SQL Serverにおける数値処理関数「AVG」の使い方を、基本構文と具体的な使用例を交えて詳しく解説します。AVG関数の動作を正しく理解し、実務のデータ集計に活かせるようにしましょう。 AVG関数とは AVG関数は、SQL Serverにおいて式の平均値、または選択された行のうち指定した列の平均値を返す集計関数です。なお、NULLの値は自動的に除外され、平均の計算対象には含まれません。 基本構文 平均値を計算するには、SQL ServerでAVG関数を次のように記述します。 SELECT AVG(列名)FROM テーブル名[WHERE 条件]; パラメータの説明: 列名:平均

  2. SQL ServerのDATEDIFF関数とは?使い方を構文と具体例で徹底解説

    本記事では、SQL Serverの日付・時刻関数である DATEDIFF関数 の使い方を、構文と具体的なサンプルコード付きで詳しく解説します。イメージしやすいよう実行結果も併せて紹介するので、初めての方でもすぐに理解できる内容となっています。 DATEDIFF関数の概要 DATEDIFF関数は、指定した時間単位(datepart)に基づいて、2つの日付・時刻の値の差を返す関数です。引数として渡す2つの値は、日付、または日付と時刻を含む式である必要があります。 基本構文 SQL ServerでDATEDIFF関数を使う場合、以下の構文を使用します。 DATEDIFF(datepart, s