Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

มีฟังก์ชั่นในตัวสำหรับสัปดาห์ของเดือนใน MySQL หรือไม่?


ไม่มีฟังก์ชันมาตรฐานในการรับสัปดาห์ของเดือนใน 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 วินาที)