Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ubah 'smalldatetime' menjadi 'date' di SQL Server (Contoh T-SQL)

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 |
+---------------------+------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa SQL Server menggunakan pemindaian indeks alih-alih pencarian indeks ketika klausa WHERE berisi nilai parameter?

  2. SQL antara tidak inklusif

  3. Paket SSIS tidak ingin mengambil metadata dari tabel sementara

  4. Cara Menonaktifkan CDC Pada Set Tabel ATAU Menonaktifkan Semua Tabel Dalam Database di SQL Server - Tutorial SQL Server

  5. Agregasi String Selama Bertahun-tahun di SQL Server