我想定义一个cron,如果date_added列中的日期早于60天,则从MySQL列中删除特定数据,但如果MySQL支持计算宽度日期,则找不到任何信息。这可能吗,如果可以,怎么办?
DELETE FROM
vcount
WHERE date_added - 60 days
date_added ==日期时间== 0000-00-00 00:00:00
答案 0 :(得分:0)
假设date_add是有效的日期列,则可以使用date_sub
DELETE FROM
vcount
WHERE date_sub(date_added, INTERVAL 60 DAY);
答案 1 :(得分:0)
您可以使用date_add()或date_sub()函数:
where date_added < date_add(curdate(),INTERVAL -60 DAY)
或
where date_added < date_sub(curdate(),INTERVAL 60 DAY)
(许多人更喜欢始终使用带有负间隔的date_add()进行减法运算)
答案 2 :(得分:0)
使用DATE_SUB(日期,INTERVAL值间隔)
date:必需。修改日期
value:必需。要减去的时间/日期间隔的值。正值和负值都允许
时间间隔:必填。要减去的时间间隔类型。可以是以下其中之一
值:
MICROSECOND
第二
分钟
小时
DAY
周
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH
DELETE FROM
vcount
WHERE date_added < (DATE_SUB(NOW(), INTERVAL 60 DAY))