date (Transact-SQL)

日付を定義します。

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

date の説明

プロパティ

構文

date

使用法

DECLARE @MyDate date

CREATE TABLE Table1 ( Column1 date )

既定の文字列リテラル形式

(下位のクライアントに使用)

YYYY-MM-DD

詳細については、「日時データの使用」の「下位クライアントの下位互換性」セクションを参照してください。

範囲

0001-01-01 ~ 9999-12-31

西暦 1 年 1 月 1 日~西暦 9999 年 12 月 31 日

要素範囲

YYYY は、0001 ~ 9999 の年を表す 4 桁の数字です。

MM は、指定された年の 01 ~ 12 の月を表す 2 桁の数字です。

DD は、指定された月の (月に応じて) 01 ~ 31 の日を表す 2 桁の数字です。

文字長

10 文字

有効桁数、小数点以下桁数

10, 0

ストレージのサイズ

3 バイト、固定

ストレージ構造

1 つの 3 バイト整数で日付を格納します。

精度

1 日

既定値

1900-01-01

この値は、time から datetime2 または datetimeoffset への暗黙的な変換で、付加的な日付要素として使用されます。

カレンダー

グレゴリオ暦

ユーザー定義の 1 秒未満の秒の有効桁数

不可

タイム ゾーン オフセットへの対応と保持

不可

夏時間への対応

不可

date でサポートされる文字列リテラル形式

次の表は、date データ型に使用できる有効な文字列リテラル形式を示しています。

数値

説明

mdy                         

[m]m/dd/[yy]yy       

[m]m-dd-[yy]yy       

[m]m.dd.[yy]yy       

myd                         

mm/[yy]yy/dd       

mm-[yy]yy/dd       

[m]m.[yy]yy.dd       

dmy                         

dd/[m]m/[yy]yy       

dd-[m]m-[yy]yy       

dd.[m]m.[yy]yy       

dym                         

dd/[yy]yy/[m]m       

dd-[yy]yy-[m]m       

dd.[yy]yy.[m]m       

ymd                         

[yy]yy/[m]m/dd       

[yy]yy-[m]m-dd       

[yy]yy-[m]m-dd       

[m]m、dd、および [yy]yy は、スラッシュ (/)、ハイフン (-)、またはピリオド (.) で区切られた文字列の月、日、および年を表します。

4 桁または 2 桁の年だけがサポートされています。可能な限り 4 桁の年を使用してください。2 桁の数字を 4 桁の西暦として解釈する場合に、世紀の解釈の区切りとする年を 0001 ~ 9999 範囲の整数で指定するには、two digit year cutoff オプション を使用します。

2 桁の西暦が、終了年の末尾の 2 桁の数値以下である場合は、終了年と同じ世紀として解釈されます。終了年の末尾の 2 桁の数値よりも大きい場合は、終了年の 1 つ前の世紀と解釈されます。たとえば、two digit year cutoff が 2049 (既定値) である場合、2 桁表記が 49 であれば、2049 年と解釈されます。2 桁表記が 50 であれば、1950 年と解釈されます。

既定の日付形式は、現在の言語設定によって決まります。日付形式は、SET LANGUAGE ステートメントおよび SET DATEFORMAT ステートメントを使って変更できます。

date では、ydm 形式はサポートされません。

アルファベット

説明

mon [dd][,] yyyy      

mon dd[,] [yy]yy      

mon yyyy [dd]          

[dd] mon[,] yyyy      

dd mon[,][yy]yy       

dd [yy]yy mon         

[dd] yyyy mon         

yyyy mon [dd]         

yyyy [dd] mon         

mon は、現在の言語における月の正式名または省略形を表します。コンマは省略可能であり、大文字と小文字は無視されます。

このあいまいな状態を避けるためには、4 桁の西暦を使用して表記します。

日を省略したときは、その月の 1 日が指定されます。

ISO 8601

説明

YYYY-MM-DD            

YYYYMMDD               

SQL 標準と同じです。これが国際標準として定義された唯一の形式です。

区切りなし

説明

[yy]yymmdd            

yyyy[mm][dd]          

date データは、4 桁、6 桁、または 8 桁で指定できます。6 桁または 8 桁の文字列は、常に ymd と解釈されます。月と日は常に 2 桁です。4 桁の文字列は年として解釈されます。

ODBC

説明

{ d 'yyyy-mm-dd' }   

ODBC API 固有です。

SQL Server 2008 でも SQL Server 2005 と同様に機能します。

W3C XML 形式

説明

yyyy-mm-ddTZD      

XML/SOAP 用にサポートされています。

TZD は、タイム ゾーン指定子 (Z または +hh:mm または -hh:mm) です。

  • hh:mm はタイム ゾーン オフセットを表します。hh は、タイム ゾーン オフセットの時間数を表す 0 ~ 14 の 2 桁の数字です。

  • MM は、タイム ゾーン オフセットの付加的な分数を表す 0 ~ 59 の 2 桁の数字です。

  • タイム ゾーン オフセットでは、+ (正負号) または – (負符号) を必ず指定します。ローカル時刻を取得する際、協定世界時 (UTC) を基準としてタイム ゾーン オフセットを加算するか、減算するかを示します。タイム ゾーン オフセットの有効範囲は -14:00 ~ +14:00 までです。

ANSI および ISO 8601 への準拠

date は、グレゴリオ暦に対する ANSI SQL 標準の定義に従います。ANSI SQL 標準の NOTE 85 には、"Datetime データ型では、グレゴリオ形式の日付を 0001–01–01 CE ~ 9999–12–31 CE の日付範囲で格納できます" と定義されています。

下位クライアント用の既定の文字列リテラル形式は、SQL 標準形式 (YYYY-MM-DD) に準拠します。この形式は、DATE に対する ISO 8601 の定義と同じです。

次の例では、文字列をそれぞれの日付および時刻データ型にキャストした結果を比較します。

SELECT 
     CAST('2007-05-08 12:35:29. 1234567 +12:15' AS time(7)) AS 'time' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS date) AS 'date' 
    ,CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS 
        'smalldatetime' 
    ,CAST('2007-05-08 12:35:29.123' AS datetime) AS 'datetime' 
    ,CAST('2007-05-08 12:35:29. 1234567 +12:15' AS datetime2(7)) AS 
        'datetime2'
    ,CAST('2007-05-08 12:35:29.1234567 +12:15' AS datetimeoffset(7)) AS 
        'datetimeoffset';

以下に結果セットを示します。

データ型

出力

time

12:35:29. 1234567

date

2007-05-08

smalldatetime

2007-05-08 12:35:00

datetime

2007-05-08 12:35:29.123

datetime2

2007-05-08 12:35:29. 1234567

datetimeoffset

2007-05-08 12:35:29.1234567 +12:15