この記事には、 datetime2の変換例が含まれています 日付の値 SQLServerの値。
datetime2を変換するとき 日付の値 データ型の場合、時間部分が失われます。ただし、ストレージサイズも7〜9バイトから3バイトに減らします。いずれにせよ、この変換は、時間の部分が必要ない場合にのみ行います。
datetime2 データ型には、0から7までの小数秒の部分を持つ日付と時刻が含まれます(これは、それに割り当てられている小数秒の数によって異なります)。その精度は100ナノ秒です。
日付 一方、データ型には時刻は含まれず、精度は1日です。
例1-暗黙の変換
datetime2間の暗黙的な変換の例を次に示します。 および日付 。
DECLARE @thedatetime2 datetime2, @thedate date; SET @thedatetime2 = '2025-05-21 10:15:30.1234567'; SET @thedate = @thedatetime2; SELECT @thedatetime2 AS 'datetime2', @thedate AS 'date';
結果:
+-----------------------------+------------+ | datetime2 | date | |-----------------------------+------------| | 2025-05-21 10:15:30.1234567 | 2025-05-21 | +-----------------------------+------------+
明示的に変換するために変換関数(以下のような)を使用していないため、これは暗黙的な変換です。この場合、 datetime2 を割り当てようとすると、SQLServerはバックグラウンドで暗黙的な変換を実行します。 日付の値 変数。
ここで、日付がわかります 値には日付のみが含まれます(時間コンポーネントは含まれません)。
この例では、 datetime2 valueはデフォルトの精度を使用します(小数点以下7桁になります)。これは任意の数に減らすことができ、変換結果は同じになります。
DECLARE @thedatetime2 datetime2(0), @thedate date; SET @thedatetime2 = '2025-05-21 10:15:30.1234567'; SET @thedate = @thedatetime2; SELECT @thedatetime2 AS 'datetime2', @thedate AS 'date';
結果:
+---------------------+------------+ | datetime2 | date | |---------------------+------------| | 2025-05-21 10:15:30 | 2025-05-21 | +---------------------+------------+
例2– CAST()を使用した明示的な変換
明示的な変換の例を次に示します。この場合、私はCAST()
を使用します SELECT
内で直接機能します datetime2間で明示的に変換するステートメント および日付 。
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CAST(@thedatetime2 AS date) AS 'date';
結果:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+>
例3– CONVERT()を使用した明示的な変換
CONVERT()
を使用した明示的な変換の例を次に示します。 CAST()
の代わりに関数 。
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CONVERT(date, @thedatetime2) AS 'date';
結果:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+>