日期:2014-05-18  浏览次数:20441 次

SQL语句的datediff用法。急!谢谢帮助
正常用法是:
select   *   from   [table]   where   datediff(d,dada,getdate())> 0   order   by   id   desc


现在我不是用他获得getdate()进行比较!而是用变量1和库datetime字段PdDate进行比较。
现数据库中表lookmydb中有5条记录如下:
字段类型说明
id(int)     username(char)       PdDate(datetime)       KeMu(char)       s_id(int)
数据库内容:
id         username         PdDate         KeMu     s_id
1             aaabbb         2007-4-4         3           51
2             aaabbb         2007-3-4         3           51
3             aaabbb         2007-4-1         3           51
4             aaabbb         2007-3-13       3           51
5             aaabbb         2007-4-2         3           51

程序   开始执行:
变量1   aaa   =   2007-4-1
SQL语句:rs.open   "select   *   from   [lookmydb]   where   KeMu= '3 '   and   s_id=51   and   username= 'aaabbb '   and   datediff(day, "&aaa& ",PdDate)> =5   order   by   id   desc ",conn,1,1

if   (rs.eof   and   rs.bof)   then
response.write( "没有 ")
else
response.write( "条件满足的ID是: ")
do   while   not   rs.eof
response.write(rs( "id ")& " <br> ")
rs.movenext
loop
response.write( "完毕,共有 "&rs.recordcount& "条记录 ")
response.end

就是判断在2007年4月1日5天以前的记录。应该是只输出ID   2   和   ID   4,但是结果是全部输出了除了datediff的判断外所有满足的条件。不知道为什么!!哎郁闷。问了好几个朋友,都搞不定,现在求大家出出点子,非常感谢!

很多朋友说先开表然后再从记录集里搜寻。这样做如果以后的记录有几万条。那不耗资源么?如果能在SQL里执行掉就最好了。

------解决方案--------------------
datediff(day,PdDate, ' "&aaa& " ')