Java #1411-日期时间值不正确:';11:21:21';函数str_to_date
我不明白为什么日期格式不正确:Java #1411-日期时间值不正确:';11:21:21';函数str_to_date,java,mysql,sql,Java,Mysql,Sql,我不明白为什么日期格式不正确: INSERT INTO ticks (idticks, symbol, date, time, size, type) VALUES ( 1, 'EUR-USD', STR_TO_DATE('10-04-2017', '%d-%m-%Y'), STR_TO_DATE('11:21:21', '%h:%i:%s'), 1.656, 'askbid'); MySQL解答: #1411-函数stru to_dat
INSERT INTO ticks (idticks, symbol, date, time, size, type) VALUES (
1,
'EUR-USD',
STR_TO_DATE('10-04-2017', '%d-%m-%Y'),
STR_TO_DATE('11:21:21', '%h:%i:%s'),
1.656,
'askbid');
MySQL解答:
#1411-函数stru to_date的日期时间值不正确:“11:21:21”
mysql> INSERT INTO ticks (idticks, symbol, DATE, `time`, size, TYPE) VALUES (
-> 1,
-> 'EUR-USD',
-> STR_TO_DATE('10-04-2017', '%d-%m-%Y'),
-> STR_TO_DATE('11:21:21', '%h:%i:%s'),
->
-> 1.656,
-> 'askbid');
ERROR 1411 (HY000): Incorrect datetime value: '11:21:21' for function str_to_date
mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,02 sec)
mysql> SET sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> INSERT INTO ticks (idticks, symbol, DATE, `time`, size, TYPE) VALUES ( 1, 'EUR-USD', STR_TO_DATE('10-04-2017', '%d-%m-%Y'), STR_TO_DATE('11:21:21', '%h:%i:%s'), 1.656, 'askbid');
Query OK, 1 row affected (0,00 sec)
mysql>
谢谢您的帮助。@xQbert-这不是5.7版中的错误!!!!! 在版本5.7中,是在日期中设置了NO\u ZERO\u的sql\u模式 这意味着只接受有效日期。如果你移除它们 一切都像5.6 样本
mysql> INSERT INTO ticks (idticks, symbol, DATE, `time`, size, TYPE) VALUES (
-> 1,
-> 'EUR-USD',
-> STR_TO_DATE('10-04-2017', '%d-%m-%Y'),
-> STR_TO_DATE('11:21:21', '%h:%i:%s'),
->
-> 1.656,
-> 'askbid');
ERROR 1411 (HY000): Incorrect datetime value: '11:21:21' for function str_to_date
mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0,02 sec)
mysql> SET sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> INSERT INTO ticks (idticks, symbol, DATE, `time`, size, TYPE) VALUES ( 1, 'EUR-USD', STR_TO_DATE('10-04-2017', '%d-%m-%Y'), STR_TO_DATE('11:21:21', '%h:%i:%s'), 1.656, 'askbid');
Query OK, 1 row affected (0,00 sec)
mysql>
可能重复的Nope不是dup。那一个的引号存储在db中。这里的情况显然不是这样。这的确很奇怪,在我看来还行……时间列的数据类型是什么?在SQL fiddle 5.6版mySQL上工作。。。假设日期为日期,时间为时间数据类型。这意味着这是数据库中的版本或配置问题;或者驱动程序将查询传递给mySQL…谢谢你的帮助,我自己找不到解决方案。