Nếu chuỗi định dạng được chỉ định và chuỗi ngày không khớp thì MySQL sẽ trả về giá trị NULL dưới dạng đầu ra cùng với cảnh báo. Sau đây là một ví dụ để hiểu tương tự -
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 dưới dạng đầu ra vì chuỗi định dạng có dấu phẩy (,) sau% Y nhưng chuỗi ngày không có bất kỳ dấu phẩy nào sau năm 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 phân biệt thứ tự của các đơn vị ngày trong chuỗi định dạng với chuỗi ngày, MySQL sẽ thực hiện tương tự như trên. Dưới đây là một ví dụ để hiểu nó -
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ủa các đơn vị trong chuỗi định dạng được thay đổi từ thứ tự của 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)