SET DATEFORMAT (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウスMicrosoft Fabric の SQL データベース

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

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

Transact-SQL 構文表記規則

構文

SET DATEFORMAT { format | @format_var }   

引数

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

注釈

DATEFORMAT ydmdatedatetime2datetimeoffsetのデータ型には対応していません。

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)