回 帖 发 新 帖 刷新版面

主题:日期比较问题

<%
    set rs=server.createobject("adodb.recordset")
    sql="select nrtext from ddzl order by lrtime desc"
    rs.open sql,conn,1
    do while not rs.eof
    if rs("lrtime")=Date() then
%>
<span class="STYLE4"><%=rs("nrtext")%></span>
<%
   rs.movenext
     loop
%>
<%else%>
今日没有信息
<%end if%>
<%
    rs.close
    set rs=nothing
%>


我想通过比较数据库里的日期和系统日期  如果时间相同就显示内容,如果不同就显示“今日没有信息”  
但是出现这个错误:
Microsoft VBScript 编译器错误 错误 '800a03f6' 

缺少 'End' 

/iisHelp/common/500-100.asp,行242 

Microsoft VBScript 编译器错误 错误 '800a040e' 

'loop' 语句缺少 'do' 

/images/ldcx_ddzl_text1.asp,行42 

loop
^
 请问各位高手到底是哪里错了 我写的这段代码对不对 帮忙更正谢谢

回复列表 (共4个回复)

沙发

按照你的意思应该这样修改:
<%
    set rs=server.createobject("adodb.recordset")
    sql="select nrtext from ddzl order by lrtime desc"
    rs.open sql,conn,1,1
    do while not rs.eof
 s=rs("lrtime")
    d=Date()
 if cdate(s)=cdate(d) then
%>
<span class="STYLE4"><%=rs("nrtext")%></span>
<%else%>
今日没有信息
<%end if%>
<%
   rs.movenext
     loop
    rs.close
    set rs=nothing
%>
但是我总感觉这样的话会输出无数个今日没有信息
如果是我的话,我会把这个条件直接写在SQL语句中然后再搜索对应符合条件记录:
sql="select nrtext from ddzl where lrtime='date()' order by lrtime desc"


板凳

如果去掉
<%do while not rs.eof%>

<%
   rs.movenext
     loop
%>
可以正常显示


还有楼上的 如果把 比较写在数据库查询里会不会降低网页浏览速度?

3 楼

在你的代码中,如果if语句成立,会出现do while ……loop
如果if语句不成立,do while 语句就没有loop了

4 楼

不会的

我来回复

您尚未登录,请登录后再回复。点此登录或注册