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

แปลงวันที่ dd/mm/yyyy เป็น yyyymmdd ใน MySQL

การแปลงรูปแบบวันที่จาก dd/mm/yyyy เป็น yyyymmdd ใน MySQL

ใช้ STR_TO_DATE() อ่าน Format ต้นทาง แล้ว DATE_FORMAT() เขียน Format ปลายทาง

SELECT DATE_FORMAT(STR_TO_DATE(yourColumn, '%d/%m/%Y'), '%Y%m%d') FROM yourTable;

ตัวอย่างการใช้งาน

สร้างตารางเก็บวันที่แบบ String (dd/mm/yyyy):

mysql> create table DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Admissiondate varchar(200));
mysql> insert into DemoTable(Admissiondate) values('21/10/2014');
mysql> insert into DemoTable(Admissiondate) values('01/12/2016');
mysql> insert into DemoTable(Admissiondate) values('31/01/2017');

ข้อมูลต้นฉบับ:

+----+---------------+
| Id | Admissiondate |
+----+---------------+
| 1  | 21/10/2014    |
| 2  | 01/12/2016    |
| 3  | 31/01/2017    |
+----+---------------+

คิวรีแปลงเป็น yyyymmdd:

mysql> select date_format(str_to_date(Admissiondate, '%d/%m/%Y'), '%Y%m%d') from DemoTable;
+-------------------------------------------------------------+
| date_format(str_to_date(Admissiondate, '%d/%m/%Y'), '%Y%m%d') |
+-------------------------------------------------------------+
| 20141021                                                    |
| 20161201                                                    |
| 20170131                                                    |
+-------------------------------------------------------------+

Format Specifiers:

  • %d - วัน 2 หลัก (01-31)
  • %m - เดือน 2 หลัก (01-12)
  • %Y - ปี 4 หลัก
  • %y - ปี 2 หลัก

แปลงกลับ (yyyymmdd → dd/mm/yyyy):

DATE_FORMAT(STR_TO_DATE(dateStr, '%Y%m%d'), '%d/%m/%Y')

แนะนำ: เก็บวันที่ในชนิด DATE หรือ DATETIME โดยตรง แทน String จะ Query/Sort/Index ได้ดีกว่ามาก