สร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable1999 ( ArrivalDate timestamp );
mysql> insert into DemoTable1999 values('2019-01-01 12:34:00');
mysql> insert into DemoTable1999 values('2019-12-31 10:04:00');
mysql> insert into DemoTable1999 values('2018-10-11 04:04:30');
ข้อมูลในตาราง
+---------------------+ | ArrivalDate | +---------------------+ | 2019-01-01 12:34:00 | | 2019-12-31 10:04:00 | | 2018-10-11 04:04:30 | +---------------------+
Query ดึงหมายเลขเดือน
ใช้ DATE_FORMAT(วันที่, '%m') คืนค่าเดือน 2 หลัก (01-12):
mysql> select date_format(ArrivalDate, '%m') as MonthName from DemoTable1999;
ผลลัพธ์
+-----------+ | MonthName | +-----------+ | 01 | | 12 | | 10 | +-----------+
รูปแบบวันที่อื่นๆ ที่เกี่ยวกับเดือน
| Format | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| %m | เดือน 2 หลัก (01-12) | 01, 12 |
| %c | เดือน 1-2 หลัก (1-12) | 1, 12 |
| %M | ชื่อเดือนเต็ม | January, December |
| %b | ชื่อเดือนย่อ 3 ตัวอักษร | Jan, Dec |
ฟังก์ชันอื่นที่ได้ผลลัพธ์เดียวกัน
-- MONTH() คืนค่าตัวเลข 1-12 (ไม่มี Leading Zero) SELECT MONTH(ArrivalDate) FROM DemoTable1999; -- EXTRACT(MONTH FROM date) - SQL Standard SELECT EXTRACT(MONTH FROM ArrivalDate) FROM DemoTable1999;
กรณีต้องการชื่อเดือนภาษาไทย
MySQL ไม่มี Built-in สำหรับภาษาไทย ต้อง Map เอง:
SELECT CASE MONTH(ArrivalDate)
WHEN 1 THEN 'มกราคม' WHEN 2 THEN 'กุมภาพันธ์' WHEN 3 THEN 'มีนาคม'
WHEN 4 THEN 'เมษายน' WHEN 5 THEN 'พฤษภาคม' WHEN 6 THEN 'มิถุนายน'
WHEN 7 THEN 'กรกฎาคม' WHEN 8 THEN 'สิงหาคม' WHEN 9 THEN 'กันยายน'
WHEN 10 THEN 'ตุลาคม' WHEN 11 THEN 'พฤศจิกายน' WHEN 12 THEN 'ธันวาคม'
END AS ThaiMonth FROM DemoTable1999;