运行以下查询时,我得到错误SQL错误[1525][HY000]:不正确的日期时间值:''
:
SELECT * FROM mytable where date_time_column >=''
该查询在过去的几个月中一直工作,从昨天开始出现上述错误。
我的MySQL版本是8.0.17
。
我尝试通过我的代码的旧版本运行代码,仍然得到相同的错误。 即使在MySQL工作台中尝试也会出现同样的错误。
什么数据库配置更改会导致这种情况?
这似乎与数据库更改本身无关,但在8.0.16
版本中,有关DateTime
和TimeStamp
类型与Strings
的比较的一些内容发生了变化。 8.0.16
更改日志中已经记录了该行为,如下所示:
在比较date
值与常量字符串时,MySQL首先尝试将字符串转换为date
,然后执行比较。 当转换失败时,MySQL将date
作为字符串执行比较,这可能导致不可预测的行为。 现在,在这种情况下,如果字符串到date
的转换失败,则与er_wrong_value
的比较失败。 (错误#29025656)
另外,这在这里被报告为bug。
PD:您的查询在我的旧5.7MySQL版本上工作。