สร้างตารางและข้อมูลตัวอย่าง
mysql> create table DemoTable1989 ( DueDate varchar(20) );
mysql> insert into DemoTable1989 values('31/01/2015');
mysql> insert into DemoTable1989 values('01/12/2018');
mysql> insert into DemoTable1989 values('25/10/2019');
ข้อมูลก่อนแปลง (รูปแบบ DD/MM/YYYY)
+------------+ | DueDate | +------------+ | 31/01/2015 | | 01/12/2018 | | 25/10/2019 | +------------+
Query แปลงเป็น DATE
ใช้ STR_TO_DATE(สตริง, รูปแบบ) รูปแบบ '%d/%m/%Y' ตรงกับ DD/MM/YYYY:
mysql> select str_to_date(DueDate, '%d/%m/%Y') as MySQLDateFormat from DemoTable1989;
ผลลัพธ์ (รูปแบบ YYYY-MM-DD มาตรฐาน MySQL)
+-----------------+ | MySQLDateFormat | +-----------------+ | 2015-01-31 | | 2018-12-01 | | 2019-10-25 | +-----------------+
รูปแบบวันที่ที่ใช้บ่อย (Format Specifiers)
| ตัวแทน | ความหมาย | ตัวอย่าง |
|---|---|---|
| %d | วัน (00-31) | 31 |
| %m | เดือน (00-12) | 01 |
| %Y | ปี 4 หลัก | 2019 |
| %y | ปี 2 หลัก | 19 |
| %H | ชั่วโมง 24 ชม. (00-23) | 14 |
| %i | นาที (00-59) | 30 |
| %s | วินาที (00-59) | 45 |
ตัวอย่างรูปแบบอื่นๆ
-- 2019-12-31 14:30:45
STR_TO_DATE('31/12/2019 14:30:45', '%d/%m/%Y %H:%i:%s')
-- Dec 31, 2019
STR_TO_DATE('Dec 31, 2019', '%b %d, %Y')
-- 31-Dec-2019
STR_TO_DATE('31-Dec-2019', '%d-%b-%Y')
การใช้งานจริง: แปลงแล้วเก็บลงคอลัมน์ DATE
ALTER TABLE DemoTable1989 ADD COLUMN DueDateConverted DATE; UPDATE DemoTable1989 SET DueDateConverted = STR_TO_DATE(DueDate, '%d/%m/%Y');