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

MySQL: จัดรูปแบบวันที่ด้วย DATE_FORMAT() และ STR_TO_DATE()


คำอธิบาย

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

ขั้นตอนการสร้างตารางและข้อมูลตัวอย่าง

mysql> create table DemoTable ( 
    DueDate varchar(100) ); 
Query OK, 0 rows affected (0.62 sec)

การเพิ่มข้อมูล (รูปแบบเดือนเป็นตัวอักษร)

mysql> insert into DemoTable values('August 04,2019'); 
Query OK, 1 row affected (0.25 sec)

แสดงข้อมูล

mysql> select * from DemoTable;

ผลลัพธ์:

+----------------+
| DueDate        |
+----------------+
| August 04,2019 |
+----------------+
1 row in set (0.00 sec)

คิวรี่แปลงรูปแบบวันที่

mysql> set @stringToDate = (
    select date_format(str_to_date(DueDate, '%M %d,%Y'), '%Y-%m-%d') 
    from DemoTable
); 
Query OK, 0 rows affected (0.02 sec)

แสดงผลลัพธ์

mysql> select @stringToDate;

ผลลัพธ์:

+---------------+
| @stringToDate |
+---------------+
| 2019-08-04    |
+---------------+
1 row in set (0.00 sec)

คำอธิบาย Format Specifiers

STR_TO_DATE: String → DATE

STR_TO_DATE('August 04,2019', '%M %d,%Y') → 2019-08-04 (DATE type)

DATE_FORMAT: DATE → String

DATE_FORMAT('2019-08-04', '%Y-%m-%d') → '2019-08-04' (VARCHAR)

รูปแบบวันที่ไทยที่นิยม

DATE_FORMAT(date_col, '%d/%m/%Y')     -- 04/08/2019
DATE_FORMAT(date_col, '%d %M %Y')     -- 04 August 2019
DATE_FORMAT(date_col, '%W, %d %M %Y') -- Sunday, 04 August 2019
Specifierความหมายตัวอย่าง
%Mชื่อเดือนเต็มAugust
%dวันที่ 2 หลัก04
%Yปี 4 หลัก2019
%mเดือน 2 หลัก08