asp按时间段查询时变量如何设置

原代码如下:总是提示这个不对:错误类型:MicrosoftJETDatabaseEngine(0x80040E07)日期的语法错误在查询表达式'shijian>=#''#... 原代码如下:
总是提示这个不对:
错误类型:
Microsoft JET Database Engine (0x80040E07)
日期的语法错误 在查询表达式 'shijian>=#''# and shijian<=#''#' 中。
/10.21/rsearch.asp, 第 330 行

<%
Dim objConn,objRS
Set objConn = Server.CreateObject("Adodb.Connection") '创建数据库连接对象
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zf_js_10.2sjk/#@&htba@#$!@2008.mdb")& ";" '连接数据库, db.mdb是数据库名
Set objRS = objConn.Execute("SELECT sum(htzj) FROM xinxi where shijian>=#'"&enabledate&"'# and shijian<=#'"&expiredate&"'#")
'number是要统计的字段名, table1是表名, sum()是求和
Response.Write objRS(0) '输出统计后的数字
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
谢谢回答!
用现在方法,在日期为空时,就提示错误,有什么好的方法让起始时间和结束时间都为空时,能查询全部数据库里的资料.谢谢!
展开
 我来答
echoh34
2008-10-24 · 超过11用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:33.4万
展开全部
<% dim xitongshijian
set rs=server.CreateObject("adodb.recordset")
xitongshijian=date()
%>

<% dim datesql,datesql1
if trim(request.QueryString("kaishi_shijian"))="" then
datesql = "1980-01-01" '根据自已的需要修改
else
datesql =""&kaishi_shijian&""
end if

if trim(request.QueryString("jieshu_shijian"))="" then
datesql1=""&xitongshijian&""
else
datesql1=""&jieshu_shijian&""
end if
Dim objConn,objRS
Set objConn = Server.CreateObject("Adodb.Connection") '创建数据库连接对象
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zf_js_10.2sjk/#@&htba@#$!@2008.mdb")& ";" '连接数据库, db.mdb是数据库名
Set objRS = objConn.Execute("SELECT sum(htzj) FROM xinxi where shijian between #"&datesql&"# and #"&datesql1&"#")
'number是要统计的字段名, table1是表名, sum()是求和
Response.Write objRS(0) '输出统计后的数字
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
lzp4881
2008-10-21 · TA获得超过2394个赞
知道大有可为答主
回答量:2825
采纳率:0%
帮助的人:3004万
展开全部
Set objRS = objConn.Execute("SELECT sum(htzj) FROM xinxi where shijian>=#'"&enabledate&"'# and shijian<=#'"&expiredate&"'#")
改成
Set objRS = objConn.Execute("SELECT sum(htzj) as sl FROM xinxi where shijian between '"&enabledate&"' and '"&expiredate&"'")

问题补充:用现在方法,在日期为空时,就提示错误,有什么好的方法让起始时间和结束时间都为空时,能查询全部数据库里的资料.谢谢!
sql="SELECT sum(htzj) as sl FROM xinxi"
if enabledate<>"" and expiredate<>"" then
sql=sql&" where shijian between '"&enabledate&"' and '"&expiredate&"'"
end if
Set objRS = objConn.Execute(sql)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2c7e98c
2013-02-19 · 超过69用户采纳过TA的回答
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:211万
展开全部
既然日期为空时会出现错误,建议再执行求和查询前先把日期为空的数据处理一下。
本人认为在查询前执行加入以下一行代码可以解决你的问题

在Set objRS = objConn.Execute("SELECT sum(htzj) FROM xinxi where shijian>=#'"&enabledate&"'# and shijian<=#'"&expiredate&"'#") 前加入
objconn.Execute("update xinxi set shijian=getdate()-1000 where shijian='' or shijian is null)
这样就可以把为空的时间修改为一个比较早的时候,如果还担心改的时间太近可能会影响别的数据,可以把getdate()-1000改成 getdate()-5000,这个你看情况自己调整。

参考资料: http://www.0576w.com/rtShow-2013-1-28_1511.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式