我希望从我的数据库中删除超过4年的行。这是我的查询。这是什么问题?这里“$ year”是我数据库表中的年份。
"DELETE FROM undergraudate WHERE YEAR(GETDATE())-'$year'>4"
答案 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