MySQL Date and DATETIME Comparisons
Membandingkan rentetan seperti tarikh menimbulkan cabaran apabila berurusan dengan medan yang disimpan sebagai DATETIME. Pertimbangkan kalendar jadual pangkalan data, dengan startTime ialah medan DATETIME. Memilih baris berdasarkan rentetan tarikh, seperti "2010-04-29," memerlukan pengendalian yang teliti untuk memadankan nilai DATETIME dengan sewajarnya.
PENYELESAIAN:
Untuk mencapai perbandingan yang diingini, gunakan fungsi DATE():
SELECT * FROM `calendar` WHERE DATE(startTime) = '2010-04-29'
Fungsi DATE() mengekstrak komponen tarikh daripada nilai DATETIME, dengan berkesan menanggalkan maklumat masa. Ini memastikan bahawa rentetan tarikh yang anda takrifkan ("2010-04-29") boleh dibandingkan secara langsung dengan tarikh yang diekstrak daripada medan DATETIME Masa mula.
PENGOPTIMUMAN PRESTASI:
Fungsi DATE() boleh menjadi lebih cekap daripada pendekatan alternatif untuk jadual besar. Sebagai contoh, penyelesaian SALIL menggunakan STRCMP mengambil masa 4.48 saat untuk jadual 2 juta baris, manakala pendekatan DATE() selesai dalam masa 2.25 saat sahaja. Pertimbangkan fungsi DATE() untuk prestasi optimum dalam senario sedemikian.
Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Tarikh dengan Cekap dengan Medan MySQL DATETIME?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!