时间戳比较在TIMESTAMP字段上不起作用

时间:2019-04-30 04:10:44

标签: mysql

我有一个名为time

的数据库列
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

但是当我使用PDO运行以下查询时:

DELETE FROM `table` WHERE time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL :days DAY))

它引发以下异常:

  

SQLSTATE [22007]:无效的日期时间格式:1292错误的日期时间值:第1行的“时间”列为“ 1555980012”

我不明白为什么会这样,请解释一下吗?

1 个答案:

答案 0 :(得分:1)

您无需在where子句中使用UNIX_TIMESTAMP函数将日期转换为数字。 这应该没有问题:

DELETE FROM `table` WHERE `time` < DATE_SUB(NOW(), INTERVAL :days DAY)