ฟังก์ชัน WEEKDAY() ใช้เพื่อคืนค่าหมายเลขวันในสัปดาห์ ของวันที่ที่ระบุ โดยเริ่มนับจากวันจันทร์ (Monday = 0) โดยจะให้ค่าเป็นเลขจำนวนเต็ม 0 – 6 ฟังก์ชันนี้ต่างจากฟังก์ชัน DAYOFWEEK() ที่เริ่มจากวันอาทิตย์
ประโยชน์ของฟังก์ชัน WEEKDAY()
- ใช้จัดกลุ่มข้อมูลตามวันในสัปดาห์ (เหมาะกับงานวิเคราะห์พฤติกรรมรายวัน)
- ใช้ในการแยกวันทำงานกับวันหยุด
- ใช้กรองข้อมูลเฉพาะวัน เช่น ดูข้อมูลเฉพาะวันจันทร์
รูปแบบการใช้งาน
WEEKDAY(date)
dateคือค่าวันที่ เช่น'2025-04-10',NOW(),order_date- ใช้สำหรับระบบที่วันเริ่มต้นสัปดาห์เป็น “วันจันทร์”
ค่าเลขที่ได้จาก WEEKDAY()
| ค่าที่ได้จาก WEEKDAY() | วัน (ภาษาอังกฤษ) | วัน (ภาษาไทย) |
|---|---|---|
| 0 | Monday | วันจันทร์ |
| 1 | Tuesday | วันอังคาร |
| 2 | Wednesday | วันพุธ |
| 3 | Thursday | วันพฤหัสบดี |
| 4 | Friday | วันศุกร์ |
| 5 | Saturday | วันเสาร์ |
| 6 | Sunday | วันอาทิตย์ |
ตัวอย่างการใช้งาน
ตรวจสอบว่า '2025-04-10' เป็นวันอะไร
SQL
SELECT WEEKDAY('2025-04-10') AS weekday_num;
-- ผลลัพธ์: 3 (Thursday)ดึงวันในสัปดาห์จากวันที่ปัจจุบัน
SQL
SELECT WEEKDAY(NOW()) AS today_weekday;ใช้ใน WHERE เพื่อกรองเฉพาะวันจันทร์
SQL
SELECT *
FROM schedules
WHERE WEEKDAY(schedule_date) = 0;จัดกลุ่มตามวัน
SQL
SELECT WEEKDAY(created_at) AS weekday,
COUNT(*) AS total
FROM orders
GROUP BY WEEKDAY(created_at)
ORDER BY weekday;