この記事には、 smalldatetimeを変換する例が含まれています 日付の値 SQLServerの値。
smalldatetimeを変換するメリットの1つ 日付の値 これは、ストレージサイズを4バイトから3バイトに減らすことです。ただし、値から時間コンポーネントが失われるため、この変換は、時間が必要ない場合にのみ行います。
smalldatetime 日付と時刻の両方のデータ型。その秒コンポーネントは常にゼロ(:00)に設定されており、小数秒はありません。その精度は分単位です。そのストレージサイズは4バイトです。
日付 一方、データ型には日付のみが含まれます。その精度は最も近い日になります。そのストレージサイズは3バイトです。
明確にするために、 smalldatetimeを変換するとき 日付の値 、年、月、日がコピーされます。時刻はコピーされません。
例1-暗黙の変換
smalldatetime間の暗黙的な変換の例を次に示します。 および日付 。
DECLARE @thesmalldatetime smalldatetime, @thedate date; SET @thesmalldatetime = '2025-05-21 10:15:30'; SET @thedate = @thesmalldatetime; SELECT @thesmalldatetime AS 'smalldatetime', @thedate AS 'thedate';
結果:
+---------------------+------------+ | smalldatetime | thedate | |---------------------+------------| | 2025-05-21 10:16:00 | 2025-05-21 | +---------------------+------------+
明示的に変換するために変換関数(以下のような)を使用していないため、これは暗黙的な変換です。この場合、 smalldatetime を割り当てようとすると、SQLServerはバックグラウンドで暗黙的な変換を実行します。 日付の値 変数。
この例では、 smalldatetimeの日付部分がわかります。 値は日付にコピーされます 値であり、時刻はコピーされません。
例2– CAST()を使用した明示的な変換
明示的な変換の例を次に示します。この場合、私はCAST()
を使用します SELECT
内で直接機能します smalldatetime間で明示的に変換するステートメント および日付 。
DECLARE @thesmalldatetime smalldatetime; SET @thesmalldatetime = '2025-05-21 10:15:30'; SELECT @thesmalldatetime AS 'thesmalldatetime', CAST(@thesmalldatetime AS date) AS 'date';
結果:
+---------------------+------------+ | thesmalldatetime | date | |---------------------+------------| | 2025-05-21 10:16:00 | 2025-05-21 | +---------------------+------------+
例3– CONVERT()を使用した明示的な変換
CONVERT()
を使用した明示的な変換の例を次に示します。 CAST()
の代わりに関数 。
DECLARE @thesmalldatetime smalldatetime; SET @thesmalldatetime = '2025-05-21 10:15:30'; SELECT @thesmalldatetime AS 'thesmalldatetime', CONVERT(date, @thesmalldatetime) AS 'date';
結果:
+---------------------+------------+ | thesmalldatetime | date | |---------------------+------------| | 2025-05-21 10:16:00 | 2025-05-21 | +---------------------+------------+