SET DATEFORMAT (Transact-SQL)SET DATEFORMAT (Transact-SQL)

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

日付の各文字列を解釈するために、日付要素 (月、日、年) の順序を設定します。Sets the order of the month, day, and year date parts for interpreting date character strings. これらの文字列の型は、datesmalldatetimedatetimedatetime2datetimeoffset です。These strings are of type date, smalldatetime, datetime, datetime2, or datetimeoffset.

すべての Transact-SQLTransact-SQL 日付および時刻のデータ型と関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。For an overview of all Transact-SQLTransact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

SET DATEFORMAT { format | @format_var }   

引数Arguments

format | @ format_varformat | @format_var
日付要素の順序を指定します。Is the order of the date parts. 有効なパラメーターは、mdydmyymdydmmyddym です。Valid parameters are mdy, dmy, ymd, ydm, myd, and dym. Unicode または Unicode に変換可能な 2 バイト文字セット (DBCS) を指定できます。Can be either Unicode or double-byte character sets (DBCS) converted to Unicode. 米国英語の既定値は mdy です。The U.S. English default is mdy. サポートされている全言語の既定の DATEFORMAT については、「sp_helplanguage (Transact-SQL)」を参照してください。For the default DATEFORMAT of all support languages, see sp_helplanguage (Transact-SQL).

RemarksRemarks

DATEFORMAT ydm は、datedatetime2datetimeoffset データ型にはサポートされていません。The DATEFORMAT ydm isn't supported for date, datetime2, and datetimeoffset data types.

DATEFORMAT の設定は、文字列の形式によっては、日付データ型の文字列の解釈が異なる場合があります。The DATEFORMAT setting may interpret character strings differently for date data types, depending on their string format. たとえば、datetime および smalldatetime の解釈は、datedatetime2、または datetimeoffset と一致しないことがあります。For example, datetime and smalldatetime interpretations may not match date, datetime2, or datetimeoffset. DATEFORMAT は、文字列をデータベースの日付値に変換するときの解釈に影響します。DATEFORMAT affects the interpretation of character strings as they're converted to date values for the database. 日付データ型の値の表示や、データベースのストレージ形式には影響しません。It doesn't affect the display of date data type values, nor their storage format in the database.

ISO 8601 など、一部の文字列形式は、DATEFORMAT 設定とは無関係に解釈されます。Some character string formats, for example ISO 8601, are interpreted independently of the DATEFORMAT setting.

SET DATEFORMAT の設定は、解析時ではなく実行時に設定されます。The setting of SET DATEFORMAT is set at execute or run time and not at parse time.

SET DATEFORMAT で設定される日付の形式は、SET LANGUAGE で暗黙的に設定される日付の形式をオーバーライドします。SET DATEFORMAT overrides the implicit date format setting of SET LANGUAGE.

アクセス許可Permissions

ロール public のメンバーシップが必要です。Requires membership in the public role.

使用例Examples

同じ DATEFORMAT 設定が適用された各セッションの中で、異なる日付文字列を入力に使用した例を次に示します。The following example uses different date strings as inputs in sessions with the same DATEFORMAT setting.

-- 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  

参照See Also

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