Artikel ini berisi contoh mengonversi waktu tanggal nilai untuk tanggal nilai di SQL Server.
Konsekuensi nyata dari mengonversi datetime nilai untuk tanggal adalah bahwa Anda kehilangan bagian waktu. Namun, satu keuntungannya adalah Anda mengurangi ukuran penyimpanan dari 8 byte menjadi 3 byte. Either way, Anda hanya akan melakukan konversi ini jika Anda tidak membutuhkan porsi waktu.
waktu kencan tipe data termasuk tanggal dan waktu, dengan bagian 3 digit pecahan detik. Akurasinya dibulatkan menjadi .000, .003, atau .007 detik.
Namun, tanggal tipe data memiliki akurasi 1 hari (dan tidak termasuk waktu, seperti yang disebutkan).
Contoh 1 – Konversi Implisit
Berikut adalah contoh konversi implisit antara waktu-tanggal dan tanggal .
DECLARE @thedatetime datetime, @thedate date; SET @thedatetime = '2025-05-21 10:15:30.123'; SET @thedate = @thedatetime; SELECT @thedatetime AS 'datetime', @thedate AS 'date';
Hasil:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 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 waktu tanggal nilai untuk tanggal variabel.
Dalam contoh ini kita dapat melihat bahwa tanggal nilai hanya menyertakan tanggal (tanpa komponen waktu).
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 mengkonversi antara datetime dan tanggal .
DECLARE @thedatetime datetime; SET @thedatetime = '2025-05-21 10:15:30.123'; SELECT @thedatetime AS 'datetime', CAST(@thedatetime AS date) AS 'date';
Hasil:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 2025-05-21 | +-------------------------+------------+
Contoh 3 – Konversi Eksplisit menggunakan CONVERT()
Berikut adalah contoh konversi eksplisit menggunakan CONVERT()
fungsi alih-alih CAST()
.
DECLARE @thedatetime datetime; SET @thedatetime = '2025-05-21 10:15:30.123'; SELECT @thedatetime AS 'datetime', CONVERT(date, @thedatetime) AS 'date';
Hasil:
+-------------------------+------------+ | datetime | date | |-------------------------+------------| | 2025-05-21 10:15:30.123 | 2025-05-21 | +-------------------------+------------+