曜日を取得する方法
DATEPART 関数の引数に 定数 WEEKDAY を指定し、曜日を取得したい 日付 を渡します。曜日 = DATEPART(WEEKDAY, 日付)
曜日は 1 ~ 7 の数値で返され、意味は次の通りです。
返される値 | 曜日 |
---|---|
1 | 日 |
2 | 月 |
3 | 火 |
4 | 水 |
5 | 木 |
6 | 金 |
7 | 土 |
サンプルSQL
SELECT
DATEPART(WEEKDAY, '2040/01/01') --結果 = 1 (日)
,DATEPART(WEEKDAY, '2040/01/02') --結果 = 2 (月)
,DATEPART(WEEKDAY, '2040/01/03') --結果 = 3 (火)
,DATEPART(WEEKDAY, '2040/01/04') --結果 = 4 (水)
,DATEPART(WEEKDAY, '2040/01/05') --結果 = 5 (木)
,DATEPART(WEEKDAY, '2040/01/06') --結果 = 6 (金)
,DATEPART(WEEKDAY, '2040/01/07') --結果 = 7 (土)

曜日を文字列('月' ~ '日')で取得
CASE文 を使用し、数値を文字列に変換します。CASE DATEPART(WEEKDAY, 日付)
WHEN 1 THEN '日'
WHEN 2 THEN '月'
WHEN 3 THEN '火'
WHEN 4 THEN '水'
WHEN 5 THEN '木'
WHEN 6 THEN '金'
WHEN 7 THEN '土'
END
サンプルSQL
今日の曜日を返します。
SELECT
CASE DATEPART(WEEKDAY, GETDATE())
WHEN 1 THEN '日'
WHEN 2 THEN '月'
WHEN 3 THEN '火'
WHEN 4 THEN '水'
WHEN 5 THEN '木'
WHEN 6 THEN '金'
WHEN 7 THEN '土'
END
- GETDATE() はシステム日時を返します。
検証環境
- Microsoft SQL Server 2019 (RTM-CU10) (KB5001090) - 15.0.4123.1 (X64) Mar 22 2021 18:10:24 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 20.04.2 LTS) <X64>
- Docker image: mcr.microsoft.com/mssql/server:2019-latest
- Docker Desktop 3.5.2(66501)
- Docker Engine 20.10.7
- Docker Compose 1.29.2
- Microsoft SQL Server Management Studio v18.8(15.0.18369.0)
- Microsoft Windows 10 Pro Version 21H1 OS Build 19043.1151 Experience: Windows Feature Experience Pack 120.2212.3530.0