SET DATEFIRST (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
週の最初の曜日を 1 から 7 の数値で設定します。
Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。
構文
SQL Server と Azure SQL Database の構文
SET DATEFIRST { number | @number_var }
Azure Synapse Analytics と Parallel Data Warehouse の構文
SET DATEFIRST 7 ;
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
number | @number_var
週の最初の曜日を示す整数値を指定します。 次のいずれかの値を指定できます。
値 | 週の最初の曜日 |
---|---|
1 |
月曜日 |
2 |
火曜日 |
3 |
水曜日 |
4 |
Thursday |
5 |
金曜日 |
6 |
土曜日 |
7 (既定値、米国英語) |
土曜日 |
注釈
SET DATEFIRST の現在の設定を確認するには、@@DATEFIRST 関数を使用します。
SET DATEFIRST の設定は、解析時ではなく実行時に設定されます。
SET DATEFIRST を指定しても DATEDIFF に影響はありません。 DATEDIFF では、週の最初の曜日として常に日曜日を使用し、関数が確実に決定的になるようにします。
すべての SET ステートメントと同様に、SET DATEFIRST は現在のセッションに影響します。
アクセス許可
ロール public のメンバーシップが必要です。
例
次の例では、日付値に対応する曜日を表示し、DATEFIRST
の設定を変更した場合の影響を示しています。
-- SET DATEFIRST to U.S. English default value of 7.
SET DATEFIRST 7;
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate
,DATEPART(dw, '1999-1-1') AS DayOfWeek;
-- January 1, 1999 is a Friday. Because the U.S. English default
-- specifies Sunday as the first day of the week, DATEPART of 1999-1-1
-- (Friday) yields a value of 6, because Friday is the sixth day of the
-- week when you start with Sunday as day 1.
SET DATEFIRST 3;
-- Because Wednesday is now considered the first day of the week,
-- DATEPART now shows that 1999-1-1 (a Friday) is the third day of the
-- week. The following DATEPART function should return a value of 3.
SELECT CAST('1999-1-1' AS datetime2) AS SelectDate
,DATEPART(dw, '1999-1-1') AS DayOfWeek;
GO