如何删除超过一年的行?

时间:2016-01-09 17:33:47

标签: mysql

我希望从我的数据库中删除超过4年的行。这是我的查询。这是什么问题?这里“$ year”是我数据库表中的年份。

"DELETE FROM undergraudate WHERE YEAR(GETDATE())-'$year'>4"

2 个答案:

答案 0 :(得分:2)

如果今天的日期是2016年1月9日,您的查询将无法正常工作,您的日期将于2012年11月10日结束。那么您可以做更好的事情:

DELETE FROM undergraudate 
WHERE year > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1461 DAY))

答案 1 :(得分:0)

是的,它看起来很好但很可能你的数据库中有日期时间或日期字段,所以如下所示。同样,GETDATE()是SQL Server函数。我认为您的意思是CURDATE()NOW()

DELETE FROM undergraudate 
WHERE YEAR(CURDATE()) - YEAR(your-date-field) > 4