การแปลงวันที่รูปแบบ UK (Day/Month/Year) ให้เป็น DATE มาตรฐาน MySQL
รูปแบบ UK Date: DD/MM/YYYY (เช่น 10/11/2019 = 10 พฤศจิกายน 2019) ใช้ STR_TO_DATE() ด้วย Format '%d/%m/%Y'
Syntax
SELECT STR_TO_DATE(your_column, '%d/%m/%Y') FROM your_table;
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล UK Date:
mysql> CREATE TABLE DemoTable728 (DueDate VARCHAR(100));
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable728 VALUES
('10/11/2019'), ('31/01/2016'), ('01/12/2015'), ('11/03/2018');
Query OK, 4 rows affected
ข้อมูลต้นฉบับ:
mysql> SELECT * FROM DemoTable728;
+------------+ | DueDate | +------------+ | 10/11/2019 | | 31/01/2016 | | 01/12/2015 | | 11/03/2018 | +------------+ 4 rows in set (0.00 sec)
แปลงเป็น DATE มาตรฐาน (YYYY-MM-DD):
mysql> SELECT STR_TO_DATE(DueDate, '%d/%m/%Y') FROM DemoTable728;
+---------------------------------+ | STR_TO_DATE(DueDate, '%d/%m/%Y') | +---------------------------------+ | 2019-11-10 | | 2016-01-31 | | 2015-12-01 | | 2018-03-11 | +---------------------------------+ 4 rows in set (0.00 sec)
Format Specifiers สำหรับ UK Date
%d- วัน 2 หลัก (01-31)%m- เดือน 2 หลัก (01-12)%Y- ปี 4 หลัก%c- เดือน 1-2 หลัก (ไม่บังคับ Leading Zero)%e- วัน 1-2 หลัก (ไม่บังคับ Leading Zero)
รูปแบบวันที่ทั่วไปและ Format Mask
| ชื่อรูปแบบ | ตัวอย่าง | Format Mask |
|---|---|---|
| UK / EU | 31/12/2023 | %d/%m/%Y |
| US | 12/31/2023 | %m/%d/%Y |
| ISO / MySQL | 2023-12-31 | %Y-%m-%d |
| Thai Buddhist | 31/12/2566 | %d/%m/%Y (ต้องลบ 543 จากปี) |
| Compact | 31122023 | %d%m%Y |