格式字符串str_to_date()
告诉 MySQL 第一个参数的日期值是什么格式。这不是如何格式化进入 mysql(例如目标)格式的值。str_to_date 的输出总是一个本地 mysql 日期/时间值,即yyyy-mm-dd hh:mm:ss
由于您说输入格式是monday/day
,但提供day/month
值且没有时间值,因此您会得到不稳定的结果。
尝试
24/01/2016
STR_TO_DATE( '$date_1', '%d/%m/%Y' )
反而。注意时间格式字符的删除。您的输入字符串根本没有时间值。
mysql> select str_to_date('24/01/2016', '%m/%d/%Y %h:%i');
+---------------------------------------------+
| str_to_date('24/01/2016', '%m/%d/%Y %h:%i') |
+---------------------------------------------+
| NULL |
+---------------------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql> select str_to_date('24/01/2016', '%d/%m/%Y');
+---------------------------------------+
| str_to_date('24/01/2016', '%d/%m/%Y') |
+---------------------------------------+
| 2016-01-24 |
+---------------------------------------+
1 row in set (0.00 sec)