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
%>
谢谢回答!
用现在方法,在日期为空时,就提示错误,有什么好的方法让起始时间和结束时间都为空时,能查询全部数据库里的资料.谢谢! 展开
总是提示这个不对:
错误类型:
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
%>
谢谢回答!
用现在方法,在日期为空时,就提示错误,有什么好的方法让起始时间和结束时间都为空时,能查询全部数据库里的资料.谢谢! 展开
3个回答
展开全部
<% 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
%>
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
%>
展开全部
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)
改成
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)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然日期为空时会出现错误,建议再执行求和查询前先把日期为空的数据处理一下。
本人认为在查询前执行加入以下一行代码可以解决你的问题
在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,这个你看情况自己调整。
本人认为在查询前执行加入以下一行代码可以解决你的问题
在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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询