ใช้ STR_TO_DATE() แปลงสตริงวันที่เป็น DATE
ไวยากรณ์
select str_to_date(yourColumnName, '%b %Y') from yourTableName;
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( JoiningYear varchar(20) ); Query OK, 0 rows affected (0.69 sec)
mysql> insert into DemoTable values('Jan 2018');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('May 2107');
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable values('Aug 2019');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Oct 2020');
Query OK, 1 row affected (0.10 sec)
คิวรี่แปลงเป็น DATE
mysql> select str_to_date(JoiningYear, '%b %Y') from DemoTable;
ผลลัพธ์
+----------------------------------+ | str_to_date(JoiningYear, '%b %Y') | +----------------------------------+ | 2018-01-00 | | 2107-05-00 | | 2019-08-00 | | 2020-10-00 | +----------------------------------+ 4 rows in set (0.05 sec)
รูปแบบ %b %Y: %b = ชื่อเดือนย่อ (Jan, May, Aug, Oct) | %Y = ปี 4 หลัก | วันที่จะเป็น 00 เพราะไม่มีข้อมูลวัน | ใช้ INSERT ... SELECT str_to_date(...) เพื่อเก็บเป็น DATE ได้เลย