smalldatetime (Transact-SQL)
適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric
日付を時刻と組み合わせて定義します。 時刻は 24 時間の日に基づいており、秒は常に 0 (:00
) で、秒の小数部は使用しません。
Note
時間、日付、datetime2、および datetimeoffset データ型を使用して、新しい作業を行います。 これらの型は、移植性が高まるため、SQL 標準に合わせて調整されます。 time、datetime2、datetimeoffset は秒の有効桁数が増えています。 datetimeoffset グローバルに配置されるアプリケーション向けにタイム ゾーンのサポートを提供します。
smalldatetime の説明
プロパティ | 値 |
---|---|
構文 | smalldatetime |
使用状況の | DECLARE @MySmallDateTime SMALLDATETIME; CREATE TABLE Table1 (Column1 SMALLDATETIME); |
既定の文字列リテラル形式 (下位クライアントに使用) |
適用なし |
日付範囲の |
2079-06-06 による 1900-01-01 1900 年 1 月 1 日から 2079 年 6 月 6 日 |
時間範囲の |
23:59:59 による 00:00:00 2024-05-09 23:59:59 を 2024-05-10 00:00:00 に丸める |
要素の範囲 |
yyyy は 4 桁で、1900 ~ 2079 の範囲で、1 年を表します。MM は 2 桁で、01 から 12 までの範囲で、指定した年の月を表します。dd は 2 桁で、指定した月の日を表す月に応じて 01 から 31 までの範囲です。HH は 2 桁で、00 から 23 の範囲で、時間を表します。mm は、分を表す 00 から 59 までの 2 桁の数字です。ss は、00 から 59 の範囲の 2 桁の数字で、2 番目を表します。 29.998 秒以下の値は、最も近い分に切り捨てられます。 29.999 秒以上の値は、最も近い分に切り上げられます。 |
文字の長さ | 最大 19 文字 |
ストレージ サイズの | 4 バイト、固定 |
精度 | 1 分 |
既定値 | 1900-01-01 00:00:00 |
予定表 の |
グレゴリオ暦 (完全な年の範囲は含まれません。) |
ユーザー定義の秒の小数部の有効桁数 | いいえ |
タイム ゾーン オフセット対応と保持 | いいえ |
夏時間対応の | いいえ |
ANSI および ISO 8601 コンプライアンス
smalldatetime は ANSI または ISO 8601 に準拠していません。
日付と時刻のデータを変換する
日付と時刻のデータ型に変換する場合、SQL Server で日付または時刻と認識できない値はすべて拒否されます。 日付と時刻のデータで
smalldatetime を他の日付と時刻の型に変換する
ここでは、smalldatetime データ型が他の日付/時刻データ型に変換される場合の処理について説明します。
date への変換の場合は、年、月、日がコピーされます。 次のコードは、smalldatetime 値を 日付 値に変換した結果を示しています。
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @date AS DATE = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@date AS 'date';
結果セットを次に示します。
@smalldatetime date
--------------------- ----------
1955-12-13 12:43:00 1955-12-13
time(n)に変換すると、時間、分、秒がコピーされます。 秒の小数部は 0
に設定されます。 次のコードは、smalldatetime 値を time(4) 値に変換した結果を示しています。
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @time AS TIME (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@time AS 'time';
結果セットを次に示します。
@smalldatetime time
----------------------- -------------
1955-12-13 12:43:00 12:43:00.0000
datetime に変換する場合は、smalldatetime 値が datetime 値にコピーされます。 秒の小数部は 0
に設定されます。 次のコードは、smalldatetime 値を datetime 値に変換した結果を示しています。
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime AS DATETIME = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime AS 'datetime';
結果セットを次に示します。
@smalldatetime datetime
----------------------- -----------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.000
datetimeoffset(n)への変換では、smalldatetime 値が datetimeoffset(n) 値にコピーされます。 秒の小数部は 0
に設定され、タイム ゾーン オフセットは +00:0
に設定されます。 次のコードは、smalldatetime 値を datetimeoffset(4) 値に変換した結果を示しています。
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetimeoffset AS DATETIMEOFFSET (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetimeoffset AS 'datetimeoffset(4)';
結果セットを次に示します。
@smalldatetime datetimeoffset(4)
--------------------- ------------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000 +00:0
datetime2(n) に変換する場合は、smalldatetime 値が datetime2(n) 値にコピーされます。 秒の小数部は 0
に設定されます。 次のコードは、smalldatetime 値を datetime2(4) 値に変換した結果を示しています。
DECLARE @smalldatetime AS SMALLDATETIME = '1955-12-13 12:43:10';
DECLARE @datetime2 AS DATETIME2 (4) = @smalldatetime;
SELECT @smalldatetime AS '@smalldatetime',
@datetime2 AS ' datetime2(4)';
結果セットを次に示します。
@smalldatetime datetime2(4)
--------------------- ------------------------
1955-12-13 12:43:00 1955-12-13 12:43:00.0000
例
A. 秒の文字列リテラルを smalldatetime にキャストする
次の例では、文字列リテラルの秒から smalldatetime
SELECT CAST ('2024-05-08 12:35:29' AS SMALLDATETIME),
CAST ('2024-05-08 12:35:30' AS SMALLDATETIME),
CAST ('2024-05-08 12:59:59.998' AS SMALLDATETIME);
入力 | Output |
---|---|
2024-05-08 12:35:29 |
2024-05-08 12:35:00 |
2024-05-08 12:35:30 |
2024-05-08 12:36:00 |
2024-05-08 12:59:59.998 |
2024-05-08 13:00:00 |
B. 日付と時刻のデータ型を比較する
次の例では、文字列をそれぞれの date および time データ型にキャストした結果を比較します。
SELECT CAST ('2024-05-08 12:35:29.1234567 +12:15' AS TIME (7)) AS 'time',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATE) AS 'date',
CAST ('2024-05-08 12:35:29.123' AS SMALLDATETIME) AS 'smalldatetime',
CAST ('2024-05-08 12:35:29.123' AS DATETIME) AS 'datetime',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIME2 (7)) AS 'datetime2',
CAST ('2024-05-08 12:35:29.1234567 +12:15' AS DATETIMEOFFSET (7)) AS 'datetimeoffset';
データ型 | Output |
---|---|
time | 12:35:29.1234567 |
date | 2024-05-08 |
smalldatetime | 2024-05-08 12:35:00 |
datetime | 2024-05-08 12:35:29.123 |
datetime2 | 2024-05-08 12:35:29.1234567 |
datetimeoffset | 2024-05-08 12:35:29.1234567 +12:15 |