ฟังก์ชัน DAYOFWEEK() ใน MySQL คืนค่าตัวเลข 1-7 แทนวันในสัปดาห์ โดย 1 = อาทิตย์, 2 = จันทร์, ..., 7 = เสาร์ (ตามมาตรฐาน ODBC)
รูปแบบคำสั่ง
SELECT DAYOFWEEK(yourDateColumn) AS WeekNumber FROM yourTableName;
ตัวอย่างการใช้งาน
1. สร้างตารางและเพิ่มวันที่ต่อเนื่อง 7 วัน
mysql> CREATE TABLE DayOfWeekDemo (Issuedate DATETIME);
Query OK, 0 rows affected (0.52 sec)
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 5 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 6 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 7 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 8 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 9 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 10 DAY));
mysql> INSERT INTO DayOfWeekDemo VALUES (DATE_ADD(CURDATE(), INTERVAL 11 DAY));
2. ดูวันที่ที่เพิ่ม
mysql> SELECT * FROM DayOfWeekDemo;
+---------------------+
| Issuedate |
+---------------------+
| 2018-12-03 00:00:00 | -- วันจันทร์
| 2018-12-04 00:00:00 | -- วันอังคาร
| 2018-12-05 00:00:00 | -- วันพุธ
| 2018-12-06 00:00:00 | -- วันพฤหัสบดี
| 2018-12-07 00:00:00 | -- วันศุกร์
| 2018-12-08 00:00:00 | -- วันเสาร์
| 2018-12-09 00:00:00 | -- วันอาทิตย์
+---------------------+
7 rows in set (0.00 sec)
3. หาเลขวันในสัปดาห์
mysql> SELECT DAYOFWEEK(Issuedate) AS WeekNumber FROM DayOfWeekDemo;
+------------+
| WeekNumber |
+------------+
| 2 | -- จันทร์
| 3 | -- อังคาร
| 4 | -- พุธ
| 5 | -- พฤหัสบดี
| 6 | -- ศุกร์
| 7 | -- เสาร์
| 1 | -- อาทิตย์
+------------+
7 rows in set (0.00 sec)
ฟังก์ชันวันที่เกี่ยวกับสัปดาห์
| ฟังก์ชัน | คืนค่า | ช่วงค่า | หมายเหตุ |
|---|---|---|---|
DAYOFWEEK(date) | วันในสัปดาห์ | 1-7 | 1=อาทิตย์ (ODBC) |
WEEKDAY(date) | วันในสัปดาห์ | 0-6 | 0=จันทร์ (มาตรฐาน) |
DAYNAME(date) | ชื่อวัน | Monday-Sunday | ภาษาอังกฤษ |
WEEK(date, mode) | สัปดาห์ในปี | 0-53 | mode กำหนดเริ่มสัปดาห์ |
YEARWEEK(date, mode) | ปีและสัปดาห์ | YYYYWW | รวมปีและสัปดาห์ |
แปลงเป็นชื่อวันภาษาไทย
SELECT
Issuedate,
CASE DAYOFWEEK(Issuedate)
WHEN 1 THEN 'อาทิตย์'
WHEN 2 THEN 'จันทร์'
WHEN 3 THEN 'อังคาร'
WHEN 4 THEN 'พุธ'
WHEN 5 THEN 'พฤหัสบดี'
WHEN 6 THEN 'ศุกร์'
WHEN 7 THEN 'เสาร์'
END AS วันภาษาไทย
FROM DayOfWeekDemo;