適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric のウェアハウス
Microsoft Fabric の SQL データベース
日付の各文字列を解釈するために、日付要素 (月、日、年) の順序を設定します。 これらの文字列の型は、date、smalldatetime、datetime、datetime2、datetimeoffset です。
Transact-SQL の日付と時刻のデータ型および関数の概要については、「日付と時刻のデータ型および関数 (Transact-SQL)」を参照してください。
構文
SET DATEFORMAT { format | @format_var }
引数
フォーマット | @format_var
日付要素の順序を指定します。 有効なパラメーターは、mdy、dmy、ymd、ydm、myd、dym です。 Unicode または Unicode に変換可能な 2 バイト文字セット (DBCS) を指定できます。 米国英語の既定値は mdy です。 すべてのサポート言語のデフォルト DATEFORMAT については、 sp_helplanguage(Transact-SQL)を参照してください。
注釈
DATEFORMAT ydmはdate、datetime2、datetimeoffsetのデータ型には対応していません。
DATEFORMAT設定では、日付データ型の文字列の文字列形式に応じて異なる解釈を行うことがあります。 たとえば、datetime および smalldatetime の解釈は、date、datetime2、または 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