问题已经完美解决,谢谢大家。谢谢4楼的xuzuning,让我学到了一个好用的函数DATE_ADD;
我把实际应用时碰到问题说一下,算作个补充吧,希望能对后面遇到的朋友有帮助:
DATE_ADD是个mysql的函数,用法DATE_ADD(date,INTERVAL expr type)
date这个参数必须是"2011-10-20"或"2011-10-20 12:20:50"这样的时间格式,用"1319338463"这样的时间戳是不行的;
还要记得istop 也要desc才可以。
我的完整sql语句是:
select * from newstable order by istop and DATE_ADD(topdate,INTERVAL topday DAY)>=now() desc,adddate desc
其中
istop 是否置顶int 0/1
topday 置顶天数int
topdate 置顶开始时间 datetime
adddate 新闻发布时间 varchar
更正一下,前面说的"date这个参数必须是"2011-10-20"或"2011-10-20 12:20:50"这样的时间格式",好像不对,这个时间格式应该跟DATE_ADD(date,INTERVAL expr type) 里面的type有关;也许是我这里用了DAY所以不能用时间戳;用其它的只要对应了类型应该也可以的,我没有试过;说话还是严谨点好,不要误导了后人,呵呵