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

แสดงชื่อเดือนแทนเลขเดือนใน MySQL ด้วย DATE_FORMAT และ STR_TO_DATE

เมื่อเก็บวันที่ในรูปแบบสตริง เช่น 'dd/mm/yyyy' และต้องการแสดงเฉพาะชื่อเดือน (ภาษาอังกฤษ) สามารถใช้ฟังก์ชัน STR_TO_DATE() แปลงสตริงเป็นวันที่ แล้วใช้ DATE_FORMAT() จัดรูปแบบแสดงผล

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

สร้างตารางและเพิ่มข้อมูลวันที่แบบสตริง:

mysql> create table DemoTable1320 (MonthName varchar(20));
mysql> insert into DemoTable1320 values('10/10/2010');
mysql> insert into DemoTable1320 values('11/12/2018');
mysql> insert into DemoTable1320 values('12/01/2019');

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

+------------+
| MonthName  |
+------------+
| 10/10/2010 |
| 11/12/2018 |
| 12/01/2019 |
+------------+

คำสั่งแสดงชื่อเดือน

mysql> select date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') from DemoTable1320;

ผลลัพธ์

+-----------------------------------------------------+
| date_format(str_to_date(MonthName,'%d/%m/%Y'),'%M') |
+-----------------------------------------------------+
| October                                             |
| December                                            |
| January                                             |
+-----------------------------------------------------+

คำอธิบาย:

  • STR_TO_DATE(MonthName, '%d/%m/%Y') แปลงสตริง 'dd/mm/yyyy' เป็นชนิดข้อมูล DATE
  • DATE_FORMAT(date, '%M') จัดรูปแบบแสดงชื่อเดือนเต็ม (January, February, ...)
  • รูปแบบอื่นๆ: %m = เลขเดือน 2 หลัก, %b = ชื่อเดือนย่อ 3 ตัวอักษร