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

MySQL: เปลี่ยนรูปแบบวันที่เป็น d/m/Y ด้วย DATE_FORMAT()


คำอธิบาย

ใช้ DATE_FORMAT(date, format) แปลง DATE/DATETIME เป็นสตริงตามรูปแบบที่ต้องการ เช่น d/m/Y (วัน/เดือน/ปี)

รูปแบบ Format Specifiers

Specifierความหมายตัวอย่าง
%dวันที่ 2 หลัก01-31
%mเดือน 2 หลัก01-12
%Yปี 4 หลัก2019
%Dวันที่มี Suffix1st, 2nd, 3rd
%Mชื่อเดือนเต็มJanuary

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

mysql> create table DemoTable ( 
    AdmissionDate date ); 
Query OK, 0 rows affected (0.89 sec)

การเพิ่มข้อมูล

mysql> insert into DemoTable values('2019-01-21'); 
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('2019-09-09'); 
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('2018-12-31'); 
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('2017-11-01'); 
Query OK, 1 row affected (0.16 sec)

แสดงข้อมูล (รูปแบบ Default YYYY-MM-DD)

mysql> select * from DemoTable;

ผลลัพธ์:

+---------------+
| AdmissionDate |
+---------------+
| 2019-01-21    |
| 2019-09-09    |
| 2018-12-31    |
| 2017-11-01    |
+---------------+
4 rows in set (0.00 sec)

คิวรี่เปลี่ยนรูปแบบเป็น d/m/Y

mysql> select date_format(AdmissionDate, '%d/%m/%Y') as AdmissionDate 
from DemoTable;

ผลลัพธ์

+---------------+
| AdmissionDate |
+---------------+
| 21/01/2019    |
| 09/09/2019    |
| 31/12/2018    |
| 01/11/2017    |
+---------------+
4 rows in set (0.00 sec)

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

-- วัน/เดือน/ปี
DATE_FORMAT(date, '%d/%m/%Y')        -- 21/01/2019

-- วัน เดือน ปี (ภาษาอังกฤษ)
DATE_FORMAT(date, '%d %M %Y')        -- 21 January 2019

-- วันเดือนปีไทย (ต้อง SET lc_time_names = 'th_TH')
SET lc_time_names = 'th_TH';
DATE_FORMAT(date, '%d %M %Y')        -- 21 มกราคม 2562

STR_TO_DATE: String → Date (Inverse)

STR_TO_DATE('21/01/2019', '%d/%m/%Y') → 2019-01-21 (DATE)