我试图将英国格式的2个日期(dd/mm/yyyy)插入到MySQL数据库的MySQL US日期格式中。
我正在使用str_to_date。str_to_date的第一个实例按预期工作,但第二个实例总是插入与str_to_date的第一个实例相同的日期,即使原始日期不同。
$date_1 = "10/01/2016";
$date_2 = "16/02/2016";
$sql = "INSERT INTO customers (date_1, date_2)
VALUES (STR_TO_DATE( '$date_1', '%m/%d/%Y %h:%i' ), STR_TO_DATE( '$date_2', '%m/%d/%Y %h:%i' ))";在str_to_date insert语句中处理多个MySQL实例的正确方法是什么?
谢谢
发布于 2015-12-14 21:12:14
str_to_date()的格式字符串告诉MySQL第一个参数的日期值是什么格式。这不是如何格式化进入mysql (例如目的地)格式的值。str_to_date的输出始终是原生mysql /time值,即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)https://stackoverflow.com/questions/34276521
复制相似问题