- 07/22/2017
- 読了4分
-
- M
- j
- c
- M
- m
-
+4
に適用される。 SQL Server (サポートされるすべてのバージョン) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Parallel Data Warehouse
時間と組み合わせた日付を定義する。 時刻は 24 時間制に基づき、秒は常に 0 (:00) で、端数はありません。
注意
新しい作業には、時刻、日付、datetime2、datetimeoffset データ型を使用します。 これらの型は、標準SQLと一致しています。 time、datetime2、および datetimeoffset は、より多くの秒の精度を提供します。datetimeoffset は、グローバルに展開されたアプリケーションのタイム ゾーン サポートを提供します。
smalldatetime description
Property | Value | |
---|---|---|
Syntax | smalldatetime | |
Usage | DECLARE @MySmalldatetime smalldatetime CREATE TABLE Table1 ( Column1 smalldatetime ) |
|
Default string literal formats (used for down->) {9366>DECLARE @MySmalldatetime Smalldatetime |
Usage | 該当なし |
日付範囲 | 1900-01-01 ~ 2079-06-06 January 1, 1900年~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桁で1年を表わします。 MM は01から12までの2桁で、指定した年の月を表します。 DD は月によって01から31までの2桁で、指定した月の日を表します。 hh は00から23までの2桁で、時を表します。 mm は00から59までの2桁で、分を表します。 SS は00から59までの2桁で、秒を表します。 29.998秒以下の値は、1分未満に切り捨てられます。 29.999秒以上の値は、分単位に切り上げられます。 |
|
文字長 | 最大19ポジション | |
保存サイズ | 4バイト、固定です。 | |
精度 | 1分 | |
初期値 | 1900-01-01 00:00:00 | |
暦 | Gregorian (全年の範囲を含んでいない)。) |
|
ユーザーによる秒単位の精度を定義する | No | |
タイムゾーン・オフセットを認識・保存する | No | |
Daylight Saving aware | No |
ANSI and ISO 8601 Compliance
smalldatetime is not ANSI or ISO 8601 compliant.
日付および時刻データの変換
日付および時刻データ型に変換する場合、SQL Server は日付または時刻として認識できないすべての値を拒否します。 日付および時刻データでの CAST および CONVERT 関数の使用については、CAST および CONVERT (Transact-SQL) を参照してください。
smalldatetime を他の日付および時刻データ型に変換
このセクションでは smalldatetime データ型が他の日付および時刻データ型に変換されるときに何が起こるかを説明します。
日付への変換では年、月および日が複写されます。 次のコードは、smalldatetime
値をdate
値に変換した結果を示しています。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @date date = @smalldatetime SELECT @smalldatetime AS '@smalldatetime', @date AS 'date'; --Result --@smalldatetime date ------------------------- ---------- --1955-12-13 12:43:00 1955-12-13 -- --(1 row(s) affected)
time(n)への変換では、時間、分、および秒がコピーされます。 次のコードは、smalldatetime
値をtime(4)
値に変換した結果を示しています。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @time time(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @time AS 'time'; --Result --@smalldatetime time ------------------------- ------------- --1955-12-13 12:43:00 12:43:00.0000 -- --(1 row(s) affected)
datetimeへの変換の場合、smalldatetime値がdatetime値にコピーされます。 端数の秒数は0に設定されます。次のコードは、smalldatetime
値をdatetime
値に変換した結果を示しています。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime datetime = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime AS 'datetime'; --Result --@smalldatetime datetime ------------------------- ----------------------- --1955-12-13 12:43:00 1955-12-13 12:43:00.000 -- --(1 row(s) affected)
datetimeoffset(n)への変換の場合、smalldatetimeの値がdatetimeoffset(n)の値にコピーされます。 端数の秒は0に設定され、タイムゾーンオフセットは+00:0に設定されます。 次のコードは、smalldatetime
値をdatetimeoffset(4)
値に変換した結果を示しています。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetimeoffset datetimeoffset(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetimeoffset AS 'datetimeoffset(4)'; --Result --@smalldatetime datetimeoffset(4) ------------------------- ------------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0 -- --(1 row(s) affected)
datetime2(n)への変換のために、smalldatetime値はdatetime2(n)値にコピーされます。 次のコードは、smalldatetime
値を datetime2(4)
値に変換した結果を示しています。
DECLARE @smalldatetime smalldatetime = '1955-12-13 12:43:10'; DECLARE @datetime2 datetime2(4) = @smalldatetime; SELECT @smalldatetime AS '@smalldatetime', @datetime2 AS ' datetime2(4)'; --Result --@smalldatetime datetime2(4) ------------------------- ------------------------ --1955-12-13 12:43:00 1955-12-13 12:43:00.0000 -- --(1 row(s) affected)
例
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:29 |
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';
。