Nếu chuỗi định dạng được chỉ định và chuỗi ngày không khớp, MySQL sẽ trả về giá trị NULL cùng với một cảnh báo. Ví dụ sau giúp hiểu rõ:
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)
Truy vấn trên trả về NULL vì chuỗi định dạng có dấu phẩy (,) sau %Y nhưng chuỗi ngày không có dấu phẩy sau 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)
Tương tự, khi thay đổi thứ tự các đơn vị ngày trong chuỗi định dạng so với chuỗi ngày, MySQL sẽ thực hiện như trên. Ví dụ dưới đây để hiểu rõ:
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)
Trong truy vấn trên, thứ tự các đơn vị trong chuỗi định dạng bị thay đổi so với thứ tự các đơn vị trong chuỗi ngày.
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)