Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil Baris dengan Cap Masa dari Hari Ini Sahaja dalam SQL?
Cara Memilih Baris dengan Cap Masa dari Hari Ini Sahaja
Dalam pangkalan data hubungan, memilih baris dengan cap masa tertentu boleh menjadi penting untuk analisis data dan pelaporan. Senario biasa adalah untuk mendapatkan semula rekod dari hari semasa, tidak termasuk mana-mana komponen masa.
Pendekatan Semasa dan Hadnya
Pertanyaan yang disediakan, SELECT * FROM table WHERE (cap masa > DATE_SUB(sekarang(), INTERVAL 1 HARI));, mendapatkan semula keputusan dalam 24 jam terakhir. Ini kerana ia menolak satu hari daripada masa semasa menggunakan DATE_SUB, yang merangkumi semua cap masa dari hari sebelumnya.
Menggunakan DATE dan CURDATE() untuk Ketepatan
Kepada pilih keputusan berdasarkan semata-mata pada tarikh, mengabaikan komponen masa, pertanyaan berikut boleh digunakan:
SELECT * FROM `table` WHERE DATE(`timestamp`) = CURDATE();
Di sini, DATE() mengekstrak bahagian tarikh cap waktu sahaja dan CURDATE() mengembalikan tarikh semasa. Dengan membandingkan nilai ini, pertanyaan menapis cap masa yang bukan dari hari ini dengan berkesan.
Penggunaan Indeks yang Cekap
Adalah penting untuk ambil perhatian bahawa pertanyaan di atas mungkin tidak menggunakan indeks dengan cekap. Pertimbangkan untuk menggunakan pertanyaan alternatif ini sebaliknya:
SELECT * FROM `table` WHERE `timestamp` >= DATE(NOW()) AND `timestamp` < DATE(NOW()) + INTERVAL 1 DAY;
Pertanyaan ini menggunakan indeks pada lajur cap waktu, yang merupakan teknik pengoptimuman biasa dalam SQL.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Baris dengan Cap Masa dari Hari Ini Sahaja dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!