PlusMagi's Blog By Pitt Phunsanit

MariaDB: recursive หาวันเสาร์ทุก ๆ วันจนถึงวันนี้

มีตั้งเป้าไว้ว่า จะเขียน blog เพิ่มทุกสัปดาห์ (ที่ชอบใช้คำว่าอาทิตย์นั้นละ) ที่จะทำทุก ๆ วันเสาร์ทุก ๆ ในแต่อาทิตย์ โดยที่บางครั้งก็ไม่ได้ทำไปเหมือนกัน ก็จะทำชดเชยย้อนหลัง แต่ปัญหาก็คือ เสาร์ไหนละ ที่ไม่ได้เขียน หรือวันไหนที่เขียนนอกวันเสาร์ วิธีนี้จะง่ายขึ้นถ้ามีวันที่ วันเสาร์ ทุก ๆ วันในตารางให้ query ก็จะง่ายมาก แต่ไม่มี ก็หาวิธี query จาก SQL ดู ถ้า recursive ขึ้นมาได้มันก็ง่ายเลย

WITH RECURSIVE DateSeries AS (SELECT DATE ('2009-01-03') AS dt -- เริ่มต้นจากวันเสาร์เท่านั้น UNION ALL SELECT dt + INTERVAL 1 DAY FROM DateSeries WHERE dt <= CURDATE ()) SELECT dt
FROM DateSeries
WHERE DAYOFWEEK (dt) = 7
ORDER BY dt;

อธิบาย

อ่านเพิ่มเติม

Exit mobile version