ไม่มีฟังก์ชันมาตรฐานในการรับสัปดาห์ของเดือนใน MySQL คุณต้องใช้ไวยากรณ์ต่อไปนี้ -
เลือกสัปดาห์(yourDateColumnName, 5) -WEEK(DATE_SUB(yourDateColumnName, INTERVAL DAYOFMONTH(yourDateColumnName) - 1 DAY), 5) + 1 AS anyAliasName FROM yourTableName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง FirstWeekOfMonth -> ( -> รหัส int ไม่ใช่คีย์หลัก NULL AUTO_INCREMENT -> วันที่ของคุณ -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (2.50 วินาที)
ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่ง INSERT แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า FirstWeekOfMonth (วันที่ของคุณ) ('2019-01-18'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า FirstWeekOfMonth (วันที่ของคุณ) ('2019-04-19');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงในค่า FirstWeekOfMonth (วันที่ของคุณ) ('2019-05-20'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า FirstWeekOfMonth (วันที่ของคุณ) ( '2019-12-31');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า FirstWeekOfMonth (วันที่ของคุณ) ('2019-10-05'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า FirstWeekOfMonth(yourdate) ('2019-08-25'); สืบค้นตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จากสัปดาห์แรกของเดือน
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+----+-----------+| รหัส | yourdate |+----+-----------+| 1 | 2019-01-18 || 2 | 2019-04-19 || 3 | 2019-05-20 || 4 | 2019-12-31 || 5 | 2019-10-05 || 6 | 2019-08-25 |+----+-----------+6 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อรับสัปดาห์ของเดือน -
mysql> SELECT WEEK(yourdate, 5) - -> WEEK(DATE_SUB(yourdate, INTERVAL DAYOFMONTH(yourdate) - 1 DAY), 5) + 1 เป็น FirstWeekDemo จาก FirstWeekOfMonth;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+--------------+| FirstWeekDemo |+--------------+| 3 || 3 || 4 || 6 || 1 || 4 |+---------------------+6 แถวในชุด (0.00 วินาที)