Mengambil Hari Pertama Minggu dalam MySQL Berdasarkan Nombor Minggu
Menentukan hari pertama minggu tertentu menggunakan nombor minggunya ialah tugas biasa dalam pengaturcaraan pangkalan data. Dengan fungsi tarikh MySQL yang berkuasa, ini boleh dicapai dengan cekap.
Cabarannya:
Memandangkan nombor minggu, bagaimana kita boleh mendapatkan semula hari pertama minggu itu dalam MySQL ? Sebagai contoh, mengetahui bahawa kami kini berada dalam MINGGU 29, kami berusaha untuk mengeluarkan Ahad, 18 Julai daripada parameter nombor minggu yang disediakan.
Penyelesaian:
tawaran MySQL pendekatan yang mudah untuk menangani isu ini. Menggunakan fungsi DAYOFWEEK(), kita boleh menentukan hari bekerja semasa, antara 1 (Ahad) hingga 7 (Sabtu). Dengan menolak nilai DAYOFWEEK() daripada 1, kami mengira bilangan hari sejak Ahad sebelumnya.
Menggunakan fungsi ADDDATE(), kemudian kita boleh menolak bilangan hari yang dikira daripada tarikh semasa untuk tiba di hari pertama dalam minggu:
ADDDATE(CURDATE(), INTERVAL 1-DAYOFWEEK(CURDATE()) DAY) WeekStart
Dengan pertanyaan ini, kami boleh mendapatkan hari pertama dalam minggu berdasarkan tarikh semasa. Untuk melanjutkan lagi logik ini kepada mana-mana nombor minggu tertentu, kami boleh parameter nombor minggu dalam pertanyaan:
ADDDATE(CURDATE(), INTERVAL 1-DAYOFWEEK(CURDATE())+(7 * (WEEKNO - WEEK(CURDATE()))) DAY) WeekStart
Pertanyaan ini akan mengembalikan hari pertama dalam minggu untuk parameter WEEKNO yang ditentukan. Dalam contoh ini, menggantikan WEEKNO dengan 29 menghasilkan hasil yang diingini: Ahad, 18 Julai.
Atas ialah kandungan terperinci Bagaimana Mencari Hari Pertama Nombor Minggu Diberikan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!