SET DATEFIRST (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

週の最初の曜日を 1 から 7 の数値で設定します。

すべての Transact-SQL 日付および時刻のデータ型と関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

-- Syntax for SQL Server and Azure SQL Database  
  
SET DATEFIRST { number | @number_var }   
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
SET DATEFIRST 7 ;  

注意

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

number | @ number_var
週の最初の曜日を示す整数値を指定します。 次のいずれかの値を指定できます。

週の最初の曜日
1 月曜日
2 Tuesday
3 水曜日
4 Thursday
5 金曜日
6 土曜日
7 (米国英語、既定値) 土曜日

注釈

SET DATEFIRST の現在の設定を確認するには、@@DATEFIRST 関数を使います。

SET DATEFIRST の設定は、解析時ではなく実行時に設定されます。

SET DATEFIRST を指定しても DATEDIFF に影響はありません。 DATEDIFF では、週の最初の曜日として常に日曜日を使用し、関数が確実に決定的になるようにします。

アクセス許可

ロール 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  

関連項目

SET ステートメント (Transact-SQL)