หากสตริงรูปแบบที่ระบุและสตริงวันที่ไม่ตรงกัน MySQL จะส่งคืนค่า NULL เป็นเอาต์พุตพร้อมกับคำเตือน ต่อไปนี้เป็นตัวอย่างเพื่อให้เข้าใจตรงกัน -
mysql> Select STR_TO_DATE('20172810', '%Y,%d%m'); +------------------------------------+ | STR_TO_DATE('20172810', '%Y,%d%m') | +------------------------------------+ | NULL | +------------------------------------+ 1 row in set, 1 warning (0.00 sec)
แบบสอบถามด้านบนส่งคืน NULL เป็นเอาต์พุตเนื่องจากสตริงรูปแบบมีเครื่องหมายจุลภาค (,) หลัง %Y แต่สตริงวันที่ไม่มีเครื่องหมายจุลภาคหลังปี 2017
mysql> Show Warnings\G *************************** 1. row *************************** Level: Warning Code: 1411 Message: Incorrect datetime value: '20172810' for function str_to_date 1 row in set (0.00 sec)
ในทำนองเดียวกัน ในการแยกแยะลำดับของหน่วยวันที่ในรูปแบบสตริงรูปแบบจากสตริงวันที่ MySQL จะดำเนินการเหมือนกับด้านบน ยกตัวอย่างด้านล่างเพื่อทำความเข้าใจ −
mysql> Select STR_TO_DATE('20172810', '%d%m%Y'); +-----------------------------------+ | STR_TO_DATE('20172810', '%d%m%Y') | +-----------------------------------+ | NULL | +-----------------------------------+ 1 row in set, 1 warning (0.00 sec)
ในแบบสอบถามข้างต้น ลำดับของหน่วยในสตริงรูปแบบจะเปลี่ยนจากลำดับของหน่วยในสตริงวันที่
mysql> Show Warnings\G *************************** 1. row *************************** Level: Warning Code: 1411 Message: Incorrect datetime value: '20172810' for function str_to_date 1 row in set (0.00 sec)