数据库中chubantime的格式是:2010-4-6,是日期类型,而schubanshijian1和schubanshijian2是通过日历控件输入的,格式是:2010-04-06,于是我用了如下代码,检索符合日期范围的数据,但是,无论输入什么日期,得出来的结果都是全部的数据。手动输入与chubantime一样的格式也不行,条件约束无效。请教一下,如何解决,谢谢!schubanshijian1=trim(request.form("schubanshijian1"))
schubanshijian2=trim(request.form("schubanshijian2"))
if schubanshijian1<>"" and schubanshijian2<>"" then
sqlstr=sqlstr&" and chubantime between '"&schubanshijian1&"' and '"&schubanshijian2&"'"
end ifif schubanshijian1<>"" and schubanshijian2="" then
sqlstr=sqlstr&" and chubantime >= '"&schubanshijian1&"'"
end ifif schubanshijian1="" and schubanshijian2<>"" then
sqlstr=sqlstr&" and  chubantime <= '"&schubanshijian2&"'"
end if

解决方案 »

  1.   

    楼主可以 先把生成的sQL语句先print出来 看看!!  有可能没有执行这个流程!!
      

  2.   

    我是菜鸟,请教一下怎么print呢?
      

  3.   

    你先调试哈,把"sqlstr=sqlstr&" and chubantime <= '"&schubanshijian2&"'"
    "中sqlstr最后得到的字符串看看是怎么样的语句,再到数据库的查询分析器里面去执行看是不是你要的结果。
    sqlstr变量最后要执行的那个位置打个断点。
      

  4.   

    干脆三个日期字段全部用CONVERT转换为VARCHAR格式:
    CONVERT(VARCHAR(10),chubantime,120)
    CONVERT(VARCHAR(10),schubanshijian1,120)
    CONVERT(VARCHAR(10),schubanshijian2,120)
      

  5.   

    将数据库日期格式与用户日期格式转为一样即可:
    1.schubanshijian1=format("yyyy-M-D",trim(request.form("schubanshijian1")))
      schubanshijian2=format("yyyy-M-D",trim(request.form("schubanshijian2")))
    2.
      sqlstr=sqlstr&" and CONVERT(VARCHAR(10),chubantime,120)
     between CONVERT(VARCHAR(10),'"&schubanshijian1 &"' ,120)
     and CONVERT(VARCHAR(10),‘"& schubanshijian2 &"' ,120)"...