我有一个名为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”
我不明白为什么会这样,请解释一下吗?
答案 0 :(得分:1)
您无需在where子句中使用UNIX_TIMESTAMP函数将日期转换为数字。 这应该没有问题:
DELETE FROM `table` WHERE `time` < DATE_SUB(NOW(), INTERVAL :days DAY)