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

Bagaimana Anda mengekstrak tanggal saja dari datetime di T-Sql?

Cara terbaik adalah:

   SELECT DATEADD(day, DATEDIFF(Day, 0, @ADate), 0) 

Ini karena secara internal, SQL Server menyimpan semua tanggal sebagai dua bilangan bulat, yang pertama adalah ****jumlah hari*** sejak 1 Jan 1900. (Yang kedua adalah porsi waktu, disimpan sebagai jumlah detik sejak Tengah Malam. (detik untuk SmallDateTime s, atau milidetik untuk DateTime s)
Menggunakan ekspresi di atas lebih baik karena menghindari semua konversi, langsung membaca dan mengakses bilangan bulat pertama dalam representasi internal tanggal tanpa harus melakukan pemrosesan apa pun... dua nol dalam ekspresi di atas (yang mewakili 1 Jan 1900, juga langsung digunakan tanpa pemrosesan atau konversi, karena mereka cocok dengan representasi internal SQL server dari tanggal 1 Januari 1900 persis seperti yang disajikan (sebagai bilangan bulat)..

*CATATAN. Sebenarnya, jumlah batas tanggal (tengah malam) yang harus Anda lewati untuk berpindah dari satu tanggal ke tanggal lainnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sql Query Pervious Row Optimization

  2. Pemicu masukkan nilai lama- nilai yang diperbarui

  3. Mengembalikan Daftar Tabel dari Server Tertaut di SQL Server (Contoh T-SQL)

  4. Menggunakan sp_help_jobschedule di SQL Server

  5. Bagaimana cara mengulang hanya melalui file yang tidak ada di tujuan menggunakan paket SSIS?