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

แปลงวันที่เป็นรูปแบบ mm-yyyy (เดือน-ปี) ใน MySQL พร้อมแสดงคอลัมน์ทั้งหมด

ใช้ DATE_FORMAT() ร่วม STR_TO_DATE() แปลงสตริงวันที่รูปแบบ dd-mm-yyyy เป็น mm-yyyy

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

สร้างตารางเก็บวันที่เป็น VARCHAR:

mysql> create table DemoTable1931 (ShippingDate varchar(40));

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

mysql> insert into DemoTable1931 values('10-11-2017'),('31-01-2019'),('02-02-2018'),('10-06-2013');

ดูข้อมูลดิบ:

mysql> select * from DemoTable1931;
+--------------+
| ShippingDate |
+--------------+
| 10-11-2017   |
| 31-01-2019   |
| 02-02-2018   |
| 10-06-2013   |
+--------------+
4 rows in set (0.00 sec)

คิวรีแปลงรูปแบบ และแสดงคอลัมน์ทั้งหมด

mysql> select 
    ->   date_format(str_to_date(ShippingDate, '%d-%m-%Y'), '%m-%Y') as MonthYear,
    ->   ShippingDate
    -> from DemoTable1931;

ผลลัพธ์:

+-----------+--------------+
| MonthYear | ShippingDate |
+-----------+--------------+
| 11-2017   | 10-11-2017   |
| 01-2019   | 31-01-2019   |
| 02-2018   | 02-02-2018   |
| 06-2013   | 10-06-2013   |
+-----------+--------------+
4 rows in set (0.00 sec)

คำอธิบายฟังก์ชัน

  • STR_TO_DATE(str, format): แปลงสตริงเป็น DATE ตามรูปแบบที่กำหนด
  • DATE_FORMAT(date, format): แปลง DATE เป็นสตริงตามรูปแบบใหม่
  • รูปแบบทั่วไป: %d=วัน, %m=เดือน(00-12), %Y=ปี 4 หลัก

แนะนำ: ควรเก็บวันที่ในชนิด DATE หรือ DATETIME ตั้งแต่แรก จะไม่ต้องแปลงซ้ำและ Query เร็วกว่า