次の方法で共有


SET DATEFORMAT (Transact-SQL)

date、smalldatetime、datetime、datetime2、datetimeoffset の各文字列を解釈する際の日付要素 (月、日、年) の順序を設定します。

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

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

構文

SET DATEFORMAT { format | @format_var } 

引数

  • format | **@**format_var
    日付要素の順序を指定します。 有効なパラメーターは、mdy、dmy、ymd、ydm、myd、および dym です。 Unicode または Unicode に変換可能な 2 バイト文字セット (DBCS) を指定できます。 言語設定が 英語 (U.S.) の場合、既定値は mdy です。 サポートされている全言語の既定の DATEFORMAT については、「sp_helplanguage (Transact-SQL)」を参照してください。

説明

ydm の日付形式は、date 型、datetime2 型、および datetimeoffset 型ではサポートされていません。

文字列の形式によっては、DATEFORMAT 設定が文字列の解釈に与える影響が、datetime および smalldatetime 値の場合と、date、datetime2、および datetimeoffset 値の場合とで異なることがあります。 この設定は、文字列をデータベース格納用の日付値に変換する際の解釈に影響します。 データベースに格納された日付データ型の値 (ストレージ形式) の表示には影響しません。

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)