Mendapatkan semula Rekod dalam Julat 30 Hari dalam MySQL
Pengguna sering menghadapi kesukaran apabila cuba mendapatkan semula rekod yang ditambahkan pada pangkalan data MySQL dalam julat tarikh tertentu, terutamanya apabila menggunakan pemformatan tarikh. Artikel ini menangani cabaran ini dengan menyediakan penyelesaian yang komprehensif untuk mendapatkan semula rekod antara hari ini dan 30 hari yang lalu, memastikan pemformatan tarikh yang betul untuk tujuan paparan.
Pertanyaan asal yang diberikan dalam soalan menghadapi masalah apabila ia gagal mengehadkan pemilihan kepada 30 hari yang lalu dan sebaliknya mengambil semua rekod. Untuk membetulkannya, adalah penting untuk menggunakan fungsi DATE_FORMAT dalam klausa SELECT, bukannya klausa WHERE. Pertanyaan yang diperbetulkan adalah seperti berikut:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
Adalah penting untuk ambil perhatian bahawa CURDATE() hanya mengambil bahagian tarikh, tidak termasuk masa. Jika lajur create_date anda menyimpan data sebagai DATETIME dengan komponen masa bukan sifar, pertanyaan ini mungkin tidak mengembalikan rekod hari ini.
Untuk menangani perkara ini, pertimbangkan untuk menggunakan NOW() sebaliknya:
SELECT DATE_FORMAT(create_date, '%m/%d/%Y') FROM mytable WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
Pengubahsuaian ini memastikan bahawa pertanyaan mengembalikan rekod yang ditambahkan dalam tempoh 30 hari yang lalu, termasuk yang ditambahkan pada hari semasa dengan sebarang komponen masa.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod MySQL dengan Cekap dari 30 Hari Terakhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!