java - #1411 - 不正确的日期时间值 : '11:21:21' for function str_to_date

标签 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 - 日期时间值不正确:函数 str_to_date 的“11:21:21”

谢谢你的帮助。

最佳答案

@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>

关于java - #1411 - 不正确的日期时间值 : '11:21:21' for function str_to_date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43529001/

相关文章:

创建 ParseObject 时出现 java android i/o Failure Exception

Java 关于@Override

php - 将多维数组拆分为单个数组 :PHP

php - 需要帮助显示数据库中的数据

c# - 在 C# 中解析 XML 文件的最快方法?

java - 如何在 TestNG 中动态更改 @Test 方法

java - 如何包含所有boost头文件?

Mysql多对多连接

mysql - 自动递增字段不是 SQL 上的主键

mysql - SQL性能问题