แปลงสตริงวันที่รูปแบบกำหนดเป็น DATE ด้วย STR_TO_DATE()
MySQL เก็บ DATE ในรูปแบบ YYYY-MM-DD หากข้อมูลเข้ามาในรูปแบบอื่น (เช่น MM-DD-YYYY) ต้องแปลงด้วย STR_TO_DATE() ก่อน INSERT
ไวยากรณ์
INSERT INTO your_table (date_col)
VALUES (STR_TO_DATE('your_date_string', 'your_format_specifier'));
ตัวอย่างสร้างตาราง
CREATE TABLE DemoTable (ShippingDate DATE);
INSERT วันที่รูปแบบ MM-DD-YYYY
INSERT INTO DemoTable VALUES (STR_TO_DATE('06-01-2019', '%m-%d-%Y'));
INSERT INTO DemoTable VALUES (STR_TO_DATE('01-31-2019', '%m-%d-%Y'));
INSERT INTO DemoTable VALUES (STR_TO_DATE('02-01-2018', '%m-%d-%Y'));
ผลลัพธ์ในตาราง (เก็บเป็น YYYY-MM-DD)
+--------------+ | ShippingDate | +--------------+ | 2019-06-01 | | 2019-01-31 | | 2018-02-01 | +--------------+
Format Specifiers หลัก:
| Specifier | ความหมาย | ตัวอย่าง |
|---|---|---|
| %Y | ปี 4 หลัก | 2019 |
| %y | ปี 2 หลัก | 19 |
| %m | เดือน 2 หลัก (01-12) | 06 |
| %c | เดือน 1-2 หลัก (1-12) | 6 |
| %d | วัน 2 หลัก (01-31) | 01 |
| %e | วัน 1-2 หลัก (1-31) | 1 |
| %H | ชั่วโมง 24 ชม. (00-23) | 13 |
| %h / %I | ชั่วโมง 12 ชม. (01-12) | 01 |
| %i | นาที (00-59) | 05 |
| %s | วินาที (00-59) | 30 |
รูปแบบทั่วไป:
%d/%m/%Y→ 31/12/2019 (DD/MM/YYYY)%m/%d/%Y→ 12/31/2019 (MM/DD/YYYY)%Y-%m-%d %H:%i:%s→ 2019-12-31 23:59:59 (DATETIME)
ฟังก์ชันคู่คือ: DATE_FORMAT(date, format) แปลง DATE → String ตามรูปแบบ