Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Membandingkan Nilai DATETIME dan DATE dengan betul dalam SQL Server?

Bagaimanakah Saya Boleh Membandingkan Nilai DATETIME dan DATE dengan betul dalam SQL Server?

Barbara Streisand
Lepaskan: 2025-01-04 17:27:39
asal
475 orang telah melayarinya

How Can I Correctly Compare DATETIME and DATE Values in SQL Server?

Membandingkan Datetime dengan Date dalam SQL Server

Apabila membandingkan nilai datetime dengan tarikh sahaja, hasilnya mungkin tidak dijangka. Ini kerana jenis data datetime termasuk komponen tarikh dan masa. Sebagai contoh, jika anda mempunyai jadual pengguna dengan lajur DateCreated jenis datetime, pertanyaan berikut:

Select * from [User] U
where  U.DateCreated = '2014-02-07'     
Salin selepas log masuk

tidak akan mengembalikan sebarang rekod, walaupun pengguna telah dibuat pada 2014-02-07 pada 12 :30:47.220.

Untuk membandingkan dengan tepat masa tarikh dengan tarikh sahaja, gunakan yang berikut kaedah:

Select * from [User] U 
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')
Salin selepas log masuk

Pertanyaan ini boleh SARGable, bermakna ia boleh menggunakan indeks pada lajur DateCreated.

Mengapa Tidak Gunakan Fungsi?

Ia mungkin menggoda untuk menggunakan fungsi seperti CONVERT untuk mengekstrak komponen tarikh daripada datetime. Walau bagaimanapun, ini tidak disyorkan. Menggunakan fungsi dalam klausa WHERE atau syarat gabungan:

  • Mengalih keluar keupayaan pengoptimum untuk menggunakan indeks pada medan
  • Menambah pengiraan yang tidak perlu untuk setiap baris data

Mengelakkan ANTARA

ANTARA juga harus dielakkan apabila berurusan dengan julat tarikh dan masa. Sebaliknya, gunakan borang berikut:

WHERE col >= '20120101' AND col < '20120201'
Salin selepas log masuk

Borang ini serasi dengan semua jenis data dan ketepatan, tanpa mengira bahagian masa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Nilai DATETIME dan DATE dengan betul dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan