我想用SQL语句查询数据库表中前三天的记录,比如一个新闻管理系统,如果要输出最近三天的新闻,该怎么写SQL语句呢,望得到大家的指教。
[b]问题补充:[/b]
补充:使用的是MySQL数据库
/*
select * from 表名 where datediff(dd,字段,getDate())<=3
*/
上面那条试了,有错误
[b]问题补充:[/b]
[size=large]非常感谢你,j2ee_chenwei,给予我的解释,
也非常抱歉我没有把问题描述的足够清楚。我的意思是这样的,比如:今天是4月7日,我想把这一时间的前3天的记录输出来(包括今天),也就是把4月5,6,7日的记录输出来。
看了你的解释,的确可以达到目的,可问题是,我并不能得到[color=red]以前的那个日期[/color],然后再让其加上 3天,再与当前时间作比较。我只能得到今天的日期,如果再能得到3天前的日期 XXdate,我就可能输出这 3天的记录了,如:
select * from news where AddNewsDate between XXdate and now();[/size]
这样啊,那你就用当前的日期减去 3 天,不久可以了嘛 。
如: select adddate(curdate(),interval -3 day);
那你就可以:
select * from news where AddNewsDate between (select adddate(curdate(),interval -3 day)) and now();
我想这样应该可以了哟,我测试了的。
啥数据库呢?
如果是 sqlserver 数据库:select * from 表名 where datediff(dd,字段,getDate())<=3
mysql:
select adddate('2009-04-5',interval 3 day)>curdate();
说明:adddate() 对日期进行加减
day 表示单位为天
curdate() 得到系统当前时间
意思就是说把 以前的日期加上3天,大于当前日期,则是前三天的记录。
我想 楼主应该是说的这个意思吧