主题:  请帮我看看这两句查询日期的语句哪里错了

沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#12002/11/2 22:07:01
一、
<%
set rs=server.createobject("adodb.recordset")
sql="select * from arhui where user_now>=dateadd('d',-3,now) "
rs.open sql,cn,1,2
%>
提示是:Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]为 dateadd 指定了无效的参数 1。

二、
<%
set rs=server.createobject("adodb.recordset")
sql="select * from arhui where datediff('d',user_now,now)<3"
rs.open sql,cn,1,3
%>
提示是:Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]为 datediff 指定了无效的参数 1。

编辑历史:[这消息被arhui编辑过(编辑时间2002-11-02 22:12:44)]

难人一个……

bzyum

职务:普通成员
等级:1
金币:1.0
发贴:167
#22002/11/3 10:23:00
1、sql="select * from arhui where user_now>=dateadd('d',-3,now) "
改为sql="select * from arhui where user_now>="&dateadd('d',-3,now)
-
2、sql="select * from arhui where datediff('d',user_now,now)<3"
改为sql="select * from arhui where user_now<="&datediff('d',-3,now)
-
没有经过测试,不过你应该知道问题出在何处了



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#32002/11/4 20:50:38
肯定在这种时间查询中用不到那种特殊的符号,在ACCESS中,一点问题都没有,但是在SQL SERVER中,却是闹得我头痛,各种办法都试了,还是没有用,哪位好心人帮帮忙呀。


难人一个……

绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#42002/11/5 8:28:54
ACCESS与SQLSERVER在有些字段的处理上还是有一定区别的
所以,当从ACCESS升级到SQLSERVER后,有些相应的代码还需要改变

编辑历史:[这消息被germchen编辑过(编辑时间2002-11-05 08:29:32)]


5D荣誉版主

职务:普通成员
等级:1
金币:10.0
发贴:271
#52002/11/5 8:47:01
晕!
datediff是用来计算日期之间间隔的呵呵,用dataadd就没事了
还有now可要改成now()的
sql="select * from arhui where user_now<="&dateadd('d',-3,now())