この記事には、日時の変換例が含まれています 日付の値 SQLServerの値。
日時を変換した場合の明らかな結果 日付の値 時間の部分を失うということです。ただし、1つの利点は、ストレージサイズを8バイトから3バイトに減らすことです。いずれにせよ、この変換は、時間の部分が必要ない場合にのみ行います。
日時 データ型には、日付と時刻が含まれ、3桁の小数秒部分が含まれます。その精度は、.000、.003、または.007秒の増分に丸められます。
ただし、日付 データ型の精度は1日です(前述のように、時刻は含まれていません)。
例1-暗黙の変換
これは、日時間の暗黙的な変換の例です。 および日付 。
DECLARE @thedatetime datetime, @thedate date; SET @thedatetime = '2025-05-21 10:15:30.123'; SET @thedate = @thedatetime; SELECT @thedatetime AS 'datetime', @thedate AS 'date';
結果:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 2025-05-21 | +-------------------------+------------+
明示的に変換するために変換関数(以下のような)を使用していないため、これは暗黙的な変換です。この場合、 datetime を割り当てようとすると、SQLServerはバックグラウンドで暗黙的な変換を実行します。 日付の値 変数。
この例では、日付 値には日付のみが含まれます(時間コンポーネントは含まれません)。
例2– CAST()を使用した明示的な変換
明示的な変換の例を次に示します。この場合、私はCAST()
を使用します SELECT
内で直接機能します 日時間で明示的に変換するステートメント および日付 。
DECLARE @thedatetime datetime; SET @thedatetime = '2025-05-21 10:15:30.123'; SELECT @thedatetime AS 'datetime', CAST(@thedatetime AS date) AS 'date';
結果:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 2025-05-21 | +-------------------------+------------+
例3– CONVERT()を使用した明示的な変換
CONVERT()
を使用した明示的な変換の例を次に示します。 CAST()
の代わりに関数 。
DECLARE @thedatetime datetime; SET @thedatetime = '2025-05-21 10:15:30.123'; SELECT @thedatetime AS 'datetime', CONVERT(date, @thedatetime) AS 'date';
結果:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 2025-05-21 | +-------------------------+------------+