Mendapatkan Hari Pertama Minggu dalam MySQL
Apabila berurusan dengan data temporal dalam pangkalan data, selalunya perlu menentukan hari pertama sesuatu minggu. Ini amat berguna untuk mengumpulkan data dan menganalisis arah aliran dari semasa ke semasa.
Pernyataan Masalah
Seorang pengguna mempunyai pertanyaan yang mengumpulkan data mengikut minggu tetapi mahu memaparkan yang pertama hari setiap minggu dan bukannya tarikh yang berbeza. Mereka telah mengenal pasti tarikh (2011-01-03) dan perlu mendapatkan semula hari pertama yang sepadan dalam minggu itu (2011-01-02).
Minggu Bermula pada Ahad
Jika minggu bermula pada hari Ahad, ungkapan MySQL berikut boleh digunakan:
DATE_ADD(mydate, INTERVAL(1-DAYOFWEEK(mydate)) DAY)
Ungkapan ini mengira hari pertama dalam minggu dengan menolak hari semasa dalam minggu (berdasarkan 1) daripada tarikh yang diberikan dan kemudian menambah 1 hari.
Minggu Bermula pada hari Isnin
Jika minggu bermula pada hari Isnin, ungkapan yang berbeza diperlukan:
DATE_ADD(mydate, INTERVAL(-WEEKDAY(mydate)) DAY);
Dalam kes ini, hari semasa dalam minggu (berasaskan 0) ialah ditolak daripada tarikh yang diberikan untuk menentukan bilangan hari untuk kembali untuk mencapai hari Isnin.
Contoh Penggunaan
Andaikan kita mempunyai tarikh berikut, yang mewakili 2011-01 -03:
'2011-01-03'
Jika minggu diandaikan bermula pada hari Ahad, kita boleh menggunakan ungkapan pertama untuk mencari hari pertama dalam minggu:
SELECT DATE_ADD('2011-01-03', INTERVAL(1-DAYOFWEEK('2011-01-03')) DAY);
Ini akan menghasilkan keputusan berikut:
2011-01-02
Seperti yang dijangkakan, hari pertama dalam minggu bermula pada hari Ahad ialah 2011-01-02.
Atas ialah kandungan terperinci Bagaimana untuk mencari hari pertama dalam seminggu dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!