การเตรียมข้อมูล
mysql> CREATE TABLE DemoTable1906 (DueTime DATETIME);
mysql> INSERT INTO DemoTable1906 VALUES(NOW()), (CURDATE()),
('2017-10-11'), ('2015-01-12'), ('2018-04-25');
ข้อมูลดิบ
+---------------------+
| DueTime |
+---------------------+
| 2019-12-11 13:54:22 |
| 2019-12-11 00:00:00 |
| 2017-10-11 00:00:00 |
| 2015-01-12 00:00:00 |
| 2018-04-25 00:00:00 |
+---------------------+
เปลี่ยนรูปแบบเป็น DD-MM-YYYY
mysql> SELECT DATE_FORMAT(DueTime, '%d-%m-%Y') FROM DemoTable1906;
ผลลัพธ์:
+---------------------------------+
| date_format(DueTime,'%d-%m-%Y') |
+---------------------------------+
| 11-12-2019 |
| 11-12-2019 |
| 11-10-2017 |
| 12-01-2015 |
| 25-04-2018 |
+---------------------------------+
Format Specifiers ทั้งหมด
| Specifier | ความหมาย | ตัวอย่าง |
|---|---|---|
%Y | ปี 4 หลัก | 2019 |
%y | ปี 2 หลัก | 19 |
%m | เดือน 01-12 | 12 |
%c | เดือน 1-12 | 12 |
%d | วัน 01-31 | 11 |
%e | วัน 1-31 (Space Pad) | 11 |
%H | ชั่วโมง 00-23 | 13 |
%h | ชั่วโมง 01-12 | 01 |
%i | นาที 00-59 | 54 |
%s | วินาที 00-59 | 22 |
%W | ชื่อวันเต็ม | Wednesday |
%M | ชื่อเดือนเต็ม | December |
%b | ชื่อเดือนย่อ | Dec |
รูปแบบทั่วไป
-- Thai Display
DATE_FORMAT(date, '%d/%m/%Y') -- 11/12/2019
DATE_FORMAT(date, '%d %M %Y') -- 11 December 2019
DATE_FORMAT(date, '%W, %d %M %Y') -- Wednesday, 11 December 2019
-- ISO Format
DATE_FORMAT(date, '%Y-%m-%d') -- 2019-12-11
DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s') -- 2019-12-11 13:54:22
-- Time Only
DATE_FORMAT(date, '%H:%i') -- 13:54
DATE_FORMAT(date, '%h:%i %p') -- 01:54 PM
อัปเดตข้อมูลจริง (เปลี่ยน Type เป็น VARCHAR)
-- เพิ่มคอลัมน์ใหม่
ALTER TABLE DemoTable1906 ADD COLUMN DueTimeFormatted VARCHAR(20);
UPDATE DemoTable1906 SET DueTimeFormatted = DATE_FORMAT(DueTime, '%d-%m-%Y');
-- หรือสร้าง View
CREATE VIEW v_DemoTable1906 AS
SELECT *, DATE_FORMAT(DueTime, '%d-%m-%Y') AS DueTimeFormatted
FROM DemoTable1906;
ข้อควรระวัง
- DATE_FORMAT คืนค่า String (VARCHAR) ไม่ใช่ Date Type
- ไม่สามารถคำนวณ Date ได้อีก (ต้องแปลงกลับ STR_TO_DATE)
- Sorting String Date: ใช้ Format YYYY-MM-DD เท่านั้น
- Timezone: DATE_FORMAT ใช้ Session Timezone