MySQL: Mendapatkan Rekod untuk Minggu Semasa
Soalan ini berkisar tentang mendapatkan semula rekod daripada jadual MySQL berdasarkan tempoh masa tertentu dalam minggu semasa. Mari kita terokai algoritma yang disediakan dan pertanyaan MySQL yang lebih cekap untuk mencapai tugas ini.
Algoritma awal melibatkan pengiraan hari bekerja, menentukan tarikh Isnin sebelumnya, kemudian mengambil rekod dalam julat tarikh yang ditetapkan. Walaupun algoritma ini berfungsi, ia memerlukan berbilang langkah dan pengiraan.
Nasib baik, MySQL menyediakan fungsi terbina dalam yang boleh memudahkan proses ini. Fungsi YEARWEEK(), terutamanya dengan parameter '1', membolehkan anda menentukan nombor minggu bagi tarikh dan tahun tertentu.
Pertanyaan Cekap Menggunakan YEARWEEK()
Pertanyaan berikut menggunakan fungsi YEARWEEK() untuk mendapatkan semula rekod untuk minggu semasa:
SELECT * FROM temp WHERE YEARWEEK(`date`, 1) = YEARWEEK(CURDATE(), 1)
Memahami Pertanyaan
Menjawab Soalan Tambahan
Pertanyaan yang disediakan dalam soalan tidak memilih rekod dengan tepat untuk minggu bermula dari hari Isnin. Ia termasuk Ahad dari minggu sebelumnya kerana hari Isnin dianggap hari 1 dalam minggu (format ISO). Untuk membetulkannya, kami boleh mengubah suai pertanyaan seperti berikut:
SELECT * FROM temp WHERE YEARWEEK(`date`, 7) = YEARWEEK(CURDATE(), 7)
Ringkasan
Fungsi YEARWEEK() menyediakan cara yang mudah dan cekap untuk memilih rekod berdasarkan nombor minggu dalam MySQL. Ia menghapuskan keperluan untuk pengiraan kompleks dan langkah perantaraan. Dengan memahami fungsi YEARWEEK(), anda boleh mendapatkan rekod untuk minggu semasa atau tempoh masa tertentu dengan mudah dalam setahun.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Rekod untuk Minggu Semasa dalam MySQL Menggunakan YEARWEEK()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!