ใน MySQL สามารถแปลงสตริง (String) ให้เป็นชนิดข้อมูล DATE ได้โดยใช้ฟังก์ชัน STR_TO_DATE() ซึ่งช่วยให้ระบุรูปแบบวันที่ของข้อความต้นทางได้อย่างชัดเจน
รูปแบบคำสั่ง
SELECT STR_TO_DATE('StringValue', '%d,%m,%Y') AS anyVariableName;
ตัวอย่างการใช้งาน
แปลงข้อความ '26,11,2018' ที่คั่นด้วยเครื่องหมายจุลภาค:
mysql> SELECT STR_TO_DATE('26,11,2018', '%d,%m,%Y');
+--------------------------------------+
| STR_TO_DATE('26,11,2018', '%d,%m,%Y') |
+--------------------------------------+
| 2018-11-26 |
+--------------------------------------+
1 row in set (0.00 sec)
ตัวอย่างเพิ่มเติม: รูปแบบชื่อเดือนภาษาอังกฤษ
SELECT STR_TO_DATE("November 26 2018", "%M %d %Y");
+---------------------------------------------+
| STR_TO_DATE("November 26 2018", "%M %d %Y") |
+---------------------------------------------+
| 2018-11-26 |
+---------------------------------------------+
1 row in set (0.03 sec)
รูปแบบวันที่ที่ใช้บ่อย (Format Specifiers)
| ตัวแทน | ความหมาย |
|---|---|
| %d | วันที่ (01-31) |
| %m | เดือนเป็นตัวเลข (01-12) |
| %Y | ปี 4 หลัก |
| %M | ชื่อเดือนเต็ม (January-December) |
| %b | ชื่อเดือนย่อ (Jan-Dec) |
เคล็ดลับ: หากข้อมูลต้นทางมีรูปแบบไม่สม่ำเสมอ ควรทำความสะอาดข้อมูลก่อนแปลง เพื่อป้องกันค่าที่ได้เป็น NULL