Artikel ini berisi contoh mengonversi waktu kecil nilai untuk tanggal nilai di SQL Server.
Salah satu manfaat mengonversi waktu kecil nilai untuk tanggal adalah Anda mengurangi ukuran penyimpanan dari 4 byte menjadi 3 byte. Namun, Anda kehilangan komponen waktu dari nilainya, jadi Anda hanya akan melakukan konversi ini jika tidak membutuhkan waktu.
waktu kecil tipe data tanggal dan waktu. Komponen detiknya selalu disetel ke nol (:00), dan tidak memiliki pecahan detik. Akurasinya sampai menit terdekat. Ukuran penyimpanannya adalah 4 byte.
Tanggal tipe data di sisi lain, hanya menyertakan tanggal. Akurasinya sampai hari terdekat. Ukuran penyimpanannya adalah 3 byte.
Jadi untuk memperjelas, saat Anda mengonversi waktu kecil nilai untuk tanggal , tahun, bulan, dan hari disalin. Waktu tidak disalin.
Contoh 1 – Konversi Implisit
Berikut adalah contoh konversi implisit antara smalldatetime dan tanggal .
DECLARE @thesmalldatetime smalldatetime, @thedate date; SET @thesmalldatetime = '2025-05-21 10:15:30'; SET @thedate = @thesmalldatetime; SELECT @thesmalldatetime AS 'smalldatetime', @thedate AS 'thedate';
Hasil:
+---------------------+------------+ | smalldatetime | thedate | |---------------------+------------| | 2025-05-21 10:16:00 | 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 smalldatetime nilai untuk tanggal variabel.
Dalam contoh ini kita dapat melihat bahwa bagian tanggal dari smalldatetime nilai disalin ke tanggal nilai, dan waktu tidak disalin.
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 smalldatetime dan tanggal .
DECLARE @thesmalldatetime smalldatetime; SET @thesmalldatetime = '2025-05-21 10:15:30'; SELECT @thesmalldatetime AS 'thesmalldatetime', CAST(@thesmalldatetime AS date) AS 'date';
Hasil:
+---------------------+------------+ | thesmalldatetime | date | |---------------------+------------| | 2025-05-21 10:16:00 | 2025-05-21 | +---------------------+------------+
Contoh 3 – Konversi Eksplisit menggunakan CONVERT()
Berikut adalah contoh konversi eksplisit menggunakan CONVERT()
fungsi alih-alih CAST()
.
DECLARE @thesmalldatetime smalldatetime; SET @thesmalldatetime = '2025-05-21 10:15:30'; SELECT @thesmalldatetime AS 'thesmalldatetime', CONVERT(date, @thesmalldatetime) AS 'date';
Hasil:
+---------------------+------------+ | thesmalldatetime | date | |---------------------+------------| | 2025-05-21 10:16:00 | 2025-05-21 | +---------------------+------------+