SQLServerで該当する日付の曜日を表示させるにはDATEPART関数を利用すると簡単に表示することができます。
SQLServerで曜日を表示させる方法
DATEPART関数の引数は
DATEPART( datepart, date )
で、datepartは「返す時間間隔の文字列式」で値を指定することで意図したものを取得することができます。
| datepart | 省略形 |
|---|---|
| year | yy、yyyy |
| quarter | qq、q |
| month | mm、m |
| dayofyear | dy、y |
| day | dd、d |
| week | wk、ww |
| weekday | dw |
| hour | hh |
| minute | mi、n |
| second | ss、s |
| millisecond | ms |
| microsecond | mcs |
| nanosecond | ns |
| tzoffset | tz |
| iso_week | isowk、isoww |
今回は曜日が欲しいので「weekday」を使います。
曜日を取得するSQL
では、実際に曜日を取得するSQLを書いてみます。
DATEPART関数が返してくる曜日は1から7までの数字で1が日曜日、2が火曜日という順番で返されてきます。
SELECT
CASE DATEPART(WEEKDAY,'2023/01/22')
WHEN 1 THEN '日曜日'
WHEN 2 THEN '月曜日'
WHEN 3 THEN '火曜日'
WHEN 4 THEN '水曜日'
WHEN 5 THEN '木曜日'
WHEN 6 THEN '金曜日'
WHEN 7 THEN '土曜日'
END AS weekday_1
,CASE DATEPART(WEEKDAY,'2023/01/23')
WHEN 1 THEN '日曜日'
WHEN 2 THEN '月曜日'
WHEN 3 THEN '火曜日'
WHEN 4 THEN '水曜日'
WHEN 5 THEN '木曜日'
WHEN 6 THEN '金曜日'
WHEN 7 THEN '土曜日'
END AS weekday_2
,CASE DATEPART(WEEKDAY,'2023/01/24')
WHEN 1 THEN '日曜日'
WHEN 2 THEN '月曜日'
WHEN 3 THEN '火曜日'
WHEN 4 THEN '水曜日'
WHEN 5 THEN '木曜日'
WHEN 6 THEN '金曜日'
WHEN 7 THEN '土曜日'
END AS weekday_3
というようにCASE WHEN を使って書くと指定した日の曜日を得ることができます。
| weekday_1 | weekday_2 | weekday_3 |
|---|---|---|
| 日曜日 | 月曜日 | 火曜日 |
まとめ
SQLSeverでは日付を指定して曜日を取得するにはDATEPART関数を利用すれば取得することができます。
また返される値は各曜日を表現する数値なのでCASE WHENなどを用いて編集してあげると見やすい形になります。
