SET DATEFORMAT (Transact-SQL)

適用対象:yesSQL Server (サポートされているすべてのバージョン) Yes Azure SQL Database Yes azure SQL Managed Instance yes azure Synapse analytics yes analytics Platform System (PDW)

日付の各文字列を解釈するために、日付要素 (月、日、年) の順序を設定します。 これらの文字列の型は、datesmalldatetimedatetimedatetime2datetimeoffset です。

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

Topic link iconTransact-SQL 構文表記規則

構文

SET DATEFORMAT { format | @format_var }   

Note

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

引数

format@@
日付要素の順序を指定します。 有効なパラメーターは、mdydmyymdydmmyddym です。 Unicode または Unicode に変換可能な 2 バイト文字セット (DBCS) を指定できます。 米国英語の既定値は mdy です。 すべてのサポート言語の既定の DATEFORMAT については、「 sp_helplanguage (SQL transact-sql)」を参照してください。

注釈

DATEFORMAT ydm は、datedatetime2datetimeoffset データ型にはサポートされていません。

DATEFORMAT の設定は、文字列の形式によっては、日付データ型の文字列の解釈が異なる場合があります。 たとえば、datetime および smalldatetime の解釈は、datedatetime2、または datetimeoffset と一致しないことがあります。 DATEFORMAT は、文字列をデータベースの日付値に変換するときの解釈に影響します。 日付データ型の値の表示や、データベースのストレージ形式には影響しません。

ISO 8601 など、一部の文字列形式は、DATEFORMAT 設定とは無関係に解釈されます。

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

SET DATEFORMAT で設定される日付の形式は、SET LANGUAGE で暗黙的に設定される日付の形式をオーバーライドします。

アクセス許可

ロール public のメンバーシップが必要です。

同じ DATEFORMAT 設定が適用された各セッションの中で、異なる日付文字列を入力に使用した例を次に示します。

-- Set date format to day/month/year.  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar DATETIME2 = '31/12/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: 2008-12-31 09:01:01.123  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar DATETIME2 = '12/31/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.  
  
GO  

関連項目

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