asp日期段的查询问题?急
我通过2个文本框分别传递最小日期和最大日期到查询结果页中进行处理,在文本框中有日期时可以查询到结果数据。但是,如果文本框中什么都填直接点查询按钮就提示我“日期的语法错误在...
我通过2个文本框分别传递最小日期和最大日期到查询结果页中进行处理,在文本框中有日期时可以查询到结果数据。但是,如果文本框中什么都填直接点查询按钮就提示我“日期的语法错误 在查询表达式 'date between ## and ## and pass='是'and qy like '%江汉区%'' 中”
我的查询结果页代码是这样的
<%
dim strSql,rs,i,PageNo,date1,date2
date1=request("search_textdate1")
date2=request("search_textdate2")
if request("search_bh")="" and request("search_qy")="" and request("search_username")="" and request("search_Identity")="" and request("search_Spouse_name")="" and request("search_Spouse_Identity")=""and request("search_Comments_year")="" and request("search_Comments_month")="" and request("search_Comments_day")="" and request("search_date")="" and request("search_textdate1")="" and request("search_textdate2")="" then
strSql="select * from [house_jianghan] where pass='是' order by id desc"
else
strSql="select * from [house_jianghan] where date between #"&date1&"# and #"&date2&"# and pass='是'" & search & " order by id desc"
end if
set rs=Server.CreateObject("ADODB.RecordSet")
rs.open strSql,conn,3,3
rs.PageSize=25
PageNo=request("PageNo")
if PageNo<1 or not isnumeric(PageNo) then
PageNo=1
end if
if cint(PageNo)>rs.PageCount then
PageNo=rs.PageCount
end if
%>
我就是想问一下有什么办法能修改一下代码,让文本框在什么都不填的情况下,直接点击查询按钮后出全部的结果,也就是说如果文本框传过来的值为空的话则跳过对比判断,并运行后面的代码。
日期格式为:XXXX-XX-XX 展开
我的查询结果页代码是这样的
<%
dim strSql,rs,i,PageNo,date1,date2
date1=request("search_textdate1")
date2=request("search_textdate2")
if request("search_bh")="" and request("search_qy")="" and request("search_username")="" and request("search_Identity")="" and request("search_Spouse_name")="" and request("search_Spouse_Identity")=""and request("search_Comments_year")="" and request("search_Comments_month")="" and request("search_Comments_day")="" and request("search_date")="" and request("search_textdate1")="" and request("search_textdate2")="" then
strSql="select * from [house_jianghan] where pass='是' order by id desc"
else
strSql="select * from [house_jianghan] where date between #"&date1&"# and #"&date2&"# and pass='是'" & search & " order by id desc"
end if
set rs=Server.CreateObject("ADODB.RecordSet")
rs.open strSql,conn,3,3
rs.PageSize=25
PageNo=request("PageNo")
if PageNo<1 or not isnumeric(PageNo) then
PageNo=1
end if
if cint(PageNo)>rs.PageCount then
PageNo=rs.PageCount
end if
%>
我就是想问一下有什么办法能修改一下代码,让文本框在什么都不填的情况下,直接点击查询按钮后出全部的结果,也就是说如果文本框传过来的值为空的话则跳过对比判断,并运行后面的代码。
日期格式为:XXXX-XX-XX 展开
1个回答
展开全部
dim strSql,rs,i,PageNo,date1,date2
date1=request("search_textdate1")
date2=request("search_textdate2")
strSql="select * from [house_jianghan] where pass='是' "
if date1 <> "" then strSql = strSql&" and DateDiff('d',"&date1&",最小时间) => 0 "
if date2 <> "" then strSql = strSql&" and DateDiff('d',"&date2&",最大时间) => 0 "
if request("search_bh")="" and request("search_qy")="" and request("search_username")="" and request("search_Identity")="" and request("search_Spouse_name")="" and request("search_Spouse_Identity")=""and request("search_Comments_year")="" and request("search_Comments_month")="" and request("search_Comments_day")="" and request("search_date")="" and request("search_textdate1")="" and request("search_textdate2")="" then
strSql = strSql
else
strSql=strSql& search
end if
strSql = strSql&" order by id desc"
使用 DateDiff('d',"&date1&",最小时间) 等出结果
其中我写的最小时间和最大时间为你的时间字段的名字
自己改一下
应该就可以运行了
DateDiff('d',"&date1&",最小时间)
这句话的意思是 最小时间 - date1 结果 如果大与0或等于0
那就说明 date1 或 date1 以后的日期
如果 date1 = 空的话就不运行这句话了
date1=request("search_textdate1")
date2=request("search_textdate2")
strSql="select * from [house_jianghan] where pass='是' "
if date1 <> "" then strSql = strSql&" and DateDiff('d',"&date1&",最小时间) => 0 "
if date2 <> "" then strSql = strSql&" and DateDiff('d',"&date2&",最大时间) => 0 "
if request("search_bh")="" and request("search_qy")="" and request("search_username")="" and request("search_Identity")="" and request("search_Spouse_name")="" and request("search_Spouse_Identity")=""and request("search_Comments_year")="" and request("search_Comments_month")="" and request("search_Comments_day")="" and request("search_date")="" and request("search_textdate1")="" and request("search_textdate2")="" then
strSql = strSql
else
strSql=strSql& search
end if
strSql = strSql&" order by id desc"
使用 DateDiff('d',"&date1&",最小时间) 等出结果
其中我写的最小时间和最大时间为你的时间字段的名字
自己改一下
应该就可以运行了
DateDiff('d',"&date1&",最小时间)
这句话的意思是 最小时间 - date1 结果 如果大与0或等于0
那就说明 date1 或 date1 以后的日期
如果 date1 = 空的话就不运行这句话了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询