mySQL 数据库似乎有一个我无法修复的错误。错误代码 1292:

There seems to be an error with mySQL database that i can't fix. ERROR Code 1292:

输入代码时出现错误

delete from littering_event_alarm where Event < date_sub(now(), interval 30 DAY);

这是完整的错误代码:1292。截断了不正确的日期时间值:'21/07/2020 16:05:35'

感谢任何帮助

错误消息表明 event 是字符串数据类型,而不是类似 date 的数据类型(datetimetimestamp)。

使用错误的数据类型是许多问题的根源(例如:它会危及数据的完整性并降低效率),我强烈建议修复数据模型并将日期存储为日期。

同时:如果 event 一直使用格式 dd/mm/yyyy hh:mi:ss,那么您可以使用 str_to_date() 将其转换为 datetime:

delete from littering_event_alarm  
where str_to_date(event, '%d/%m/%Y %h:%i:%s') > now() - interval 30 day