@xQbert - 这不是 5.7 版中的错误 !!!!!
在 5.7 版中,sql_mode 设置为 NO_ZERO_IN_DATE
这意味着只接受有效日期。如果你删除它们
一切都像 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>