Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。
DATEPART関数
今回は日付関数の中からDATEPART関数を紹介します。
DATEPART関数の構文は以下のとおりです。
select DATEPART(interval,date,firstdayofweek,firstweekofyear) from テーブル名
DATEPART関数は引数「date」から引数「interval」で指定した単位で日付・時刻情報を抽出します。
引数 | 内容 |
---|---|
interval | 抽出形式。日付・時刻形式データから抽出するデータを指定 |
date | 日付・時刻データを含む列・定数・式を指定する |
firstdayofweek | 省略可。週の始まりの曜日。1~7の数値を指定します。省略した場合は1を指定したことになります。 |
firstweekofyear | 省略可。第1週の指定。 |
Excel VBA関数のDATEPART関数と同じ機能です。
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 | 年の最初の完全な週から開始します。 |
DATEPART関数使用例
日付・時刻情報データから指定した単位で日付・時刻情報を抽出。
下記では誕生日から年を抽出。
引数「interval」の指定によって様々情報を抽出できる。
引数「interval」に「y」を指定すると、引数「date」に指定した日付が「date」に指定した年の1/1から何日経過したかを抽出できる。
引数「date」にはシリアル値を指定することも可能。