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

Konversi 'datetime' menjadi 'date' di SQL Server (Contoh T-SQL)

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah tampilan lebih cepat daripada kueri sederhana?

  2. Jalankan Pemicu Hanya Saat Kolom Tertentu Diperbarui (SQL Server)

  3. Kesalahan overflow aritmatika mengonversi ekspresi ke tipe data datetime. (sambil menampilkan tanggal waktu..)

  4. SQL Server:Bagaimana cara menggunakan UNION dengan dua kueri yang KEDUAnya memiliki klausa WHERE?

  5. Konversi tipe data datetime2 ke tipe data datetime menghasilkan nilai di luar rentang