Artikel ini berisi contoh mengonversi datetime2 nilai untuk tanggal nilai di SQL Server.
Saat Anda mengonversi datetime2 nilai untuk tanggal tipe data, Anda kehilangan porsi waktu. Namun, Anda juga mengurangi ukuran penyimpanan dari antara 7 dan 9 byte menjadi 3 byte. Bagaimanapun, Anda hanya akan melakukan konversi ini jika Anda tidak membutuhkan porsi waktu.
datetime2 tipe data mencakup tanggal dan waktu dengan bagian pecahan detik antara 0 dan 7 (ini tergantung pada berapa banyak pecahan detik yang ditetapkan untuk itu). Akurasinya adalah 100 nanodetik.
Tanggal tipe data di sisi lain, tidak termasuk waktu, dan memiliki akurasi 1 hari.
Contoh 1 – Konversi Implisit
Berikut adalah contoh konversi implisit antara datetime2 dan tanggal .
DECLARE @thedatetime2 datetime2, @thedate date; SET @thedatetime2 = '2025-05-21 10:15:30.1234567'; SET @thedate = @thedatetime2; SELECT @thedatetime2 AS 'datetime2', @thedate AS 'date';
Hasil:
+-----------------------------+------------+ | datetime2 | date | |-----------------------------+------------| | 2025-05-21 10:15:30.1234567 | 2025-05-21 | +-----------------------------+------------+
Ini adalah konversi implisit karena kami tidak menggunakan fungsi konversi (seperti yang di bawah ini) untuk mengonversinya secara eksplisit. Dalam hal ini, SQL Server melakukan konversi implisit di balik layar saat kami mencoba menetapkan datetime2 nilai untuk tanggal variabel.
Di sini kita dapat melihat bahwa tanggal nilai hanya menyertakan tanggal (tanpa komponen waktu).
Dalam contoh ini, datetime2 nilai menggunakan presisi default (yang menghasilkan 7 tempat desimal). Ini dapat dikurangi ke angka berapa pun dan hasil konversi akan sama.
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';
Hasil:
+---------------------+------------+ | datetime2 | date | |---------------------+------------| | 2025-05-21 10:15:30 | 2025-05-21 | +---------------------+------------+
Contoh 2 – Konversi Eksplisit menggunakan CAST()
Berikut ini contoh konversi eksplisit. Dalam hal ini, saya menggunakan CAST()
berfungsi langsung di dalam SELECT
pernyataan untuk secara eksplisit mengonversi antara datetime2 dan tanggal .
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CAST(@thedatetime2 AS date) AS 'date';
Hasil:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+
Contoh 3 – Konversi Eksplisit menggunakan CONVERT()
Berikut adalah contoh konversi eksplisit menggunakan CONVERT()
fungsi alih-alih CAST()
.
DECLARE @thedatetime2 datetime2(4); SET @thedatetime2 = '2025-05-21 10:15:30.1234'; SELECT @thedatetime2 AS 'datetime2', CONVERT(date, @thedatetime2) AS 'date';
Hasil:
+--------------------------+------------+ | datetime2 | date | |--------------------------+------------| | 2025-05-21 10:15:30.1234 | 2025-05-21 | +--------------------------+------------+