Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แปลงรูปแบบวันที่ MySQL ให้เป็น YYYY-MM-DD

บทความนี้สาธิตวิธีแปลงรูปแบบวันที่ที่ซับซ้อน (เช่น '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 ไม่ได้รองรับ