MYSQL การ QUERY ข้อมูลด้วย WEEKDAY ให้เริ่มต้นวันอาทิตย์เท่ากับ 0
ตัวอย่างการใช้งาน WEEKDAY()
SELECT
`order_id`,
`order_date`,
WEEKDAY(`order_date`) AS `weekday`
FROM `orders`
ผลลัพท์เป็นไปตามตารางด้านล่าง ซึ่งวันที่ 2023-06-04 เป็นวันอาทิตย์ ทำให้ WEEKDAY คืนค่า 6 (WEEKDAY คืนค่าโดยเริ่มนับจากวันจันทร์เป็นวันที่ 0 ถึงวันอาทิตย์เป็นวันที่ 6 นับเป็นตัวเลข 1, 2, 3, 4, 5, 6, 0 ตามลำดับ)
เราสามารถเขียนคำสั่ง ของ MySQL ให้ WEEKDAY คืนค่าเริ่มต้นเป็น วันอาทิตย์ เท่ากับ 0 ได้ดังนี้
SELECT
`order_id`,
`order_date`,
ETL(WEEKDAY(create_date) + 1, 1, 2, 3, 4, 5, 6) AS `weekday`
FROM `orders`
มีอีกวิธีหาก DBMS ไม่รองรับคำสั่ง ETL (ผมทดสอบบน MariaDB มันทำงานได้นะ) คำสั่งด้านล่างมันให้ผลลัพท์เหมือนกัน
SELECT
`order_id`,
`order_date`,
MOD((WEEKDAY(`order_date`) + 1), 7) AS `weekday`
FROM `orders`