【发布时间】:2020-02-14 06:53:21
【问题描述】:
对于 Mysql 8 服务器上的无效日期,我遇到了 2 类错误:-
错误代码:1525。不正确的 DATE 值:'2019-09-31'。
警告代码:1292。日期时间值不正确:第 1 行的列“date_column”的日期时间值不正确。
谁能建议如何解决/修复/忽略 mysql 8 上无效日期的这些错误?
我们正在将我们的数据库服务器从 MySQL 5 迁移到 MySQL 8。我在两台服务器上运行以下 2 个查询:-
查询一:SELECT * FROM db1.table1 WHERE date_column >= '2019-09-01 00:00:00' AND date_column <= '2019-09-31 23:59:59' ;
查询 2:SELECT * FROM db1.table1 WHERE date_column BETWEEN '2019-09-01 00:00:00' AND '2019-09-31 23:59:59' ;
在 mysql 5 服务器上,我没有收到错误/警告,两个查询都返回相同的结果。
在 mysql 8 服务器上,查询 1 中断并出现错误代码 1525,而查询 2 成功运行但没有结果(尽管有结果),警告代码为 1292 和消息“不正确的日期时间值:''2019 -09-31 23:59:59'' 第 1 行的列 'date_column'。
【问题讨论】:
-
9 月只有 31 天。参考一个有效的日子,你会没事的。例如
'2019-09-30'或'2019-10-01'。 -
您可以错误地配置 8.x 服务器以接受无效日期,但它很可能稍后会回来并咬您一口。是否有机会修复无效记录?
-
谢谢 Gordon,但我只想解决无效日期。
-
@ÁlvaroGonzález 我尝试使用“ALLOW_INVALID_DATES”配置 mysql 8 服务器,但在这种情况下查询不会返回任何结果。
-
@GordonLinoff,“9 月只有 31 天”?!?
标签: mysql sql database datetime mysql-8.0