Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengambil Baris dengan Cap Masa dari Hari Ini Sahaja dalam SQL?

Bagaimana untuk Mengambil Baris dengan Cap Masa dari Hari Ini Sahaja dalam SQL?

Susan Sarandon
Susan Sarandonasal
2024-12-03 05:01:13498semak imbas

How to Retrieve Rows with Timestamps from Today Only in 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!

Kenyataan:
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