MariaDB SQL查询中的日期时间问题



我正在转换我们通过SQL Anywhere运行的一些SQL查询,以使用新的MariaDB环境。给我带来麻烦的问题之一是:

UPDATE
rfo.client_notes_details
SET
client_notes_details.equip_status = 59
WHERE
(
(
(client_notes_details.equip_status) BETWEEN 4
AND 58
)
AND (
(client_notes_details.date_of_visit) < NOW() - 30
)
);

当我在SQL检查器中运行上面的查询时,它是有效的。然而,当我用SQL Workbench在MariaDB数据库中测试这一点时,我得到了以下datetime问题:

1292日期时间值不正确:"20191028072188"匹配的行数:0已更改:0个警告:1个

如何更新此查询以使用MariaDB友好的日期时间格式?

使用interval:

client_notes_details.date_of_visit < NOW() - INTERVAL 30 DAY

MySQL和MariaDB倾向于根据上下文将日期/时间值转换为字符串或数字。在这种情况下,它看到一个数字正在被减去,所以它将该值转换为一个数字——结果不是一个有效的日期。

最新更新