บทความนี้สาธิตวิธีแปลงรูปแบบวันที่ที่ซับซ้อน (เช่น 'Sat,20 Jul 2019 04:29:35') ให้เป็นรูปแบบมาตรฐาน YYYY-MM-DD HH:MM:SS โดยใช้ STR_TO_DATE() แปลงเป็น DATE แล้ว DATE_FORMAT() จัดรูปแบบใหม่
สร้างตารางและข้อมูลทดสอบ
mysql> CREATE TABLE DemoTable666(AdmissionDate VARCHAR(200));
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable666 VALUES('Sat,20 Jul 2019 04:29:35');
mysql> INSERT INTO DemoTable666 VALUES('Fri,02 Oct 2018 12:19:15');
mysql> INSERT INTO DemoTable666 VALUES('Sun,01 Aug 2016 11:10:05');
mysql> INSERT INTO DemoTable666 VALUES('Fri, 06 Nov 2015 04:06:05 -0500');
คิวรีแปลงรูปแบบวันที่
mysql> SELECT DATE_FORMAT(
STR_TO_DATE(AdmissionDate, '%a, %d %b %Y %H:%i:%S'),
'%Y-%m-%d %H:%i:%s'
) AS MyDate FROM DemoTable666;
ผลลัพธ์
+---------------------+
| MyDate |
+---------------------+
| 2019-07-20 04:29:35 |
| 2018-10-02 12:19:15 |
| 2016-08-01 11:10:05 |
| 2015-11-06 04:06:05 |
+---------------------+
4 rows in set, 1 warning (0.00 sec)
คำอธิบาย Format Specifier:
%a- ชื่อวันสัปดาห์ย่อ (Sat, Fri, Sun)%d- วันของเดือน (01-31)%b- ชื่อเดือนย่อ (Jul, Oct, Aug, Nov)%Y- ปี 4 หลัก%H:%i:%s- ชั่วโมง:นาที:วินาที (24 ชม.)- Warning เกิดจากแถวสุดท้ายมี Timezone (-0500) ที่ Format ไม่ได้รองรับ