แปลง String วันที่แบบ Text เป็น DATE/DATETIME
ใช้ STR_TO_DATE() พร้อม Format Specifier ที่ตรงกับรูปแบบข้อมูลต้นทาง
ตัวอย่าง: "April 04 2019" → 2019-04-04
CREATE TABLE convertDateDemo (AdmissionDate VARCHAR(200));
INSERT INTO convertDateDemo VALUES
('April 04 2019'), ('May 05 2018'), ('January 01 2012'), ('June 12 2016');
คำสั่งแปลง
SELECT STR_TO_DATE(AdmissionDate, '%M %e %Y %l:%i%p') AS ConvertDate FROM convertDateDemo;
ผลลัพธ์
+---------------------+ | ConvertDate | +---------------------+ | 2019-04-04 00:00:00 | | 2018-05-05 00:00:00 | | 2012-01-01 00:00:00 | | 2016-06-12 00:00:00 | +---------------------+
Format Specifiers ที่ใช้
| Specifier | ความหมาย | ตัวอย่าง |
|---|---|---|
| %M | ชื่อเดือนเต็ม | January, April |
| %e | วัน (1-31) ไม่มี Leading Zero | 4, 12 |
| %Y | ปี 4 หลัก | 2019 |
| %l:%i%p | เวลา 12 ชม. (ชั่วโมง:นาที AM/PM) | 12:00AM |
รูปแบบทั่วไปอื่นๆ
'%d/%m/%Y'- 31/12/2023'%Y-%m-%d'- 2023-12-31 (ISO)'%m-%d-%Y %H:%i:%s'- 12-31-2023 23:59:59'%W, %M %e, %Y'- Sunday, December 31, 2023
ข้อควรระวัง
- Format ต้องตรงกับข้อมูลทุกตัวอักษร (รวม Space, Comma)
- คืน NULL ถ้า Format ไม่ตรง
- ควรทำ Clean Data ก่อน (TRIM, REPLACE)