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

วิธีแปลง VARCHAR เป็น DATE ใน MySQL

ใช้ STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้วใช้ DATE_FORMAT() จัดรูปแบบให้ต้องการ

ไวยากรณ์

SELECT DATE_FORMAT(STR_TO_DATE(yourColumn, 'inputFormat'), 'outputFormat') 
FROM yourTable;

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

สร้างตาราง VarcharToDate:

mysql> CREATE TABLE VarcharToDate (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Created_Time VARCHAR(100),
    -> PRIMARY KEY(Id)
    -> );

เพิ่มข้อมูล (รูปแบบ dd/mm/yyyy):

mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('12/1/2016');
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('14/3/2017');
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('15/3/2018');
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('19/5/2011');
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('19/8/2019');
mysql> INSERT INTO VarcharToDate(Created_Time) VALUES('21/11/2020');

ข้อมูลเดิม

+----+--------------+
| Id | Created_Time |
+----+--------------+
| 1  | 12/1/2016    |
| 2  | 14/3/2017    |
| 3  | 15/3/2018    |
| 4  | 19/5/2011    |
| 5  | 19/8/2019    |
| 6  | 21/11/2020   |
+----+--------------+

คำสั่งแปลงเป็น DATE (รูปแบบ YYYY-MM-DD)

mysql> SELECT DATE_FORMAT(STR_TO_DATE(Created_Time, '%d/%m/%Y'), '%Y-%m-%d') AS Date 
    -> FROM VarcharToDate;

ผลลัพธ์

+------------+
| Date       |
+------------+
| 2016-01-12 |
| 2017-03-14 |
| 2018-03-15 |
| 2011-05-19 |
| 2019-08-19 |
| 2020-11-21 |
+------------+

รูปแบบวันที่สำคัญ:

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