smalldatetime (Transact-SQL)
日付を時刻と組み合わせて定義します。 時刻は 24 時間制です。秒数は常にゼロ (:00) で、1 秒未満の秒を持ちません。
注意
新しい作業項目に対しては、time、date、datetime2、および datetimeoffset データ型を使用します。これらの型は、SQL 標準に準拠しています。これらの型は、より高い移植性を持ちます。time、datetime2、および datetimeoffset は、分に関してより高い有効桁数を提供します。datetimeoffset は、グローバルに配置されるアプリケーション向けにタイム ゾーンのサポートを提供します。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Windows Azure SQL データベース (初回のリリースから現在のバージョンまで) |
smalldatetime の説明
構文 |
smalldatetime |
使用方法 |
DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
既定の文字列リテラル形式 (下位のクライアントに使用) |
該当なし |
日付範囲 |
1900-01-01 ~ 2079-06-06 1900 年 1 月 1 日~ 2079 年 6 月 6 日 |
時刻範囲 |
00:00:00 ~ 23:59:59 2007-05-09 23:59:59 は次のように丸められます。 2007-05-10 00:00:00 |
要素範囲 |
YYYY は、1900 ~ 2079 の年を表す 4 桁の数字です。 MM は、指定された年の 01 ~ 12 の月を表す 2 桁の数字です。 DD は、指定された月の (月に応じて) 01 ~ 31 の日を表す 2 桁の数字です。 hh は、00 ~ 23 の時を表す 2 桁の数字です。 mm は、00 ~ 59 の分を表す 2 桁の数字です。 ss は、00 ~ 59 の秒を表す 2 桁の数字です。 29.998 秒以下の値は最も近い分単位の値に切り捨てられます。29.999 秒以上の値は最も近い分単位の値に切り上げられます。 |
文字長 |
最大 19 文字 |
ストレージのサイズ |
4 バイト、固定 |
精度 |
1 分 |
既定値 |
1900-01-01 00:00:00 |
カレンダー |
グレゴリオ暦 (完全な年の範囲は含まれません。) |
ユーザー定義の 1 秒未満の秒の有効桁数 |
なし |
タイム ゾーン オフセットへの対応と保持 |
なし |
夏時間への対応 |
なし |
ANSI および ISO 8601 への準拠
smalldatetime は ANSI または ISO 8601 に準拠していません。
日付型データと時刻型データの変換
data データ型と time データ型に変換する場合、SQL Server で日付や時刻と認識できない値はすべて拒否されます。 CAST 関数および CONVERT 関数で日付と時刻のデータを使用する方法については、「CAST および CONVERT (Transact-SQL)」を参照してください。
smalldatetime から他の日付/時刻データ型への変換
次の表では、smalldatetime データ型が他の日付/時刻データ型に変換される場合の処理について説明します。
変換先のデータ型 |
変換の詳細 |
---|---|
date |
年、月、日がコピーされます。 次のコードは、smalldatetime 値を date 値に変換した結果を示しています。
|
time(n) |
時間、分、および秒がコピーされます。 秒の小数部は 0 に設定されます。 次のコードは、smalldatetime 値を time(4) 値に変換した結果を示しています。
|
datetime |
smalldatetime 値が datetime 値にコピーされます。 秒の小数部は 0 に設定されます。 次のコードは、smalldatetime 値を datetime 値に変換した結果を示しています。
|
datetimeoffset(n) |
smalldatetime 値が datetimeoffset(n) 値にコピーされます。 秒の小数部は 0 に設定され、タイム ゾーン オフセットは +00:0 に設定されます。 次のコードは、smalldatetime 値を datetimeoffset(4) 値に変換した結果を示しています。
|
datetime2(n) |
smalldatetime 値が datetime2(n) 値にコピーされます。 秒の小数部は 0 に設定されます。 次のコードは、smalldatetime 値を datetime2(4) 値に変換した結果を示しています。
|
使用例
A. 秒を含む文字列リテラルを smalldatetime にキャストする
次の例では、文字列リテラル内の秒の smalldatetime への変換を比較します。
SELECT
CAST('2007-05-08 12:35:29' AS smalldatetime)
,CAST('2007-05-08 12:35:30' AS smalldatetime)
,CAST('2007-05-08 12:59:59.998' AS smalldatetime);
入力 |
出力 |
---|---|
2007-05-08 12:35:29 |
2007-05-08 12:35:00 |
2007-05-08 12:35:30 |
2007-05-08 12:36:00 |
2007-05-08 12:59:59.998 |
2007-05-08 13:00:00 |
B. 日付/時刻データ型を比較する
次の例では、文字列をそれぞれの日付/時刻データ型にキャストした結果を比較します。
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 |