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などを用いて編集してあげると見やすい形になります。