Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

SQLでExcelの集計を簡単・楽しく - DATEDIFF関数

Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。


DATEDIFF関数

今回は日付関数の中からDATEDIFF関数を紹介します。

DATEDIFF関数の構文は以下のとおりです。

select DATEDIFF(interval,date1,date2,firstdayofweek,firstweekofyear) from テーブル名

DATEDIFF関数は引数「date1」と引数「date2」の間隔を引数「interval」で指定した単位で抽出します。

引数 内容
interval 抽出形式。日付・時刻形式データから抽出するデータを指定
date1 日付・時刻データを含む列・定数・式を指定する
date2 日付・時刻データを含む列・定数・式を指定する
firstdayofweek 省略可。週の始まりの曜日。1~7の数値を指定します。省略した場合は1を指定したことになります。
firstweekofyear 省略可。第1週の指定。

Excel 関数のDATEDIF関数とほぼ同じ機能です。


interval
設定 説明
yyyy
q 四半期
m
y 年間経過日数
d
w 曜日
ww
h
n
s


firstdayofweek
定数 意味
vbSunday 1 日曜日(既定値)
vbMonday 2 月曜日
vbTuesday 3 火曜日
vbWednesday 4 水曜日
VbThursday 5 木曜日
vbFriday 6 金曜日
vbSaturday 7 土曜日

定数が存在しますが、Excel内では使えないようなので「値」を使用します。


firstweekofyear
定数 説明
vbUseSystem 0 NLS API の設定を使います。
vbFirstJan1 1 1 月 1 日が含まれる週から開始します (既定)。
vbFirstFourDays 2 新年の少なくとも 4 日が含まれる最初の週から開始します。
vbFirstFullWeek 3 年の最初の完全な週から開始します。

DateDiff 関数 - Microsoft サポート


DATEDIFF関数使用例

引数「date1」と引数「date2」の間隔を引数「interval」の単位で表示。
下記では元データ「誕生日」と今日(2023-05-21)の間隔を「日」単位で表示。

「年」単位でも表示できるが、1年が経過していなくても1と表示されるので注意。


www.excellovers.com