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) です。
|
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 |