如何在Sql Server中查询到一个时间范围内的所有值?
我写的代码是:
txtSQL = "select * from student where date between '" & Trim(DTPicker1.Value) & "' and '" & Trim(DTPicker2.Value) & "' "
rs.Open txtSQL, cn, adOpenDynamic, adLockOptimistic
得到的结果是空的,即什么都没有!
如果我用> 和<比较两个范围的值的话,会出现2004-12-31 < 2004-7-1的情况!
也会报错,我应该怎么办?

解决方案 »

  1.   

    格式化试试:txtSQL = "select * from student where date between '" & format(DTPicker1.Value,"yyyy-mm-dd") & "' and '" & format(DTPicker2.Value,"yyyy-mm-dd") & "'"^_^
      

  2.   

    rs空的话可能存在二种情况:I数据库中没有相应的rs;II你的date字段类型和dtpicker.value的字段类型不同,你可以通过cstr函数来转换为字符型进行比较,如是用小健的办法format
      

  3.   

    如果数据库记录格式为2004-12-31 12:30:00
    那么条件between '2004-12-31' and '2005-1-1'返回结果就为空.
      

  4.   

    知道怎么回事了
    我在数据库中记录的格式是"yyyy-mm-dd hh-mm-ss",呵呵
    不过怎么才能让他们比较大小而不出错呢?
      

  5.   

    你传入dtp.value作参数,比如值是2004-12-31,那么sqlServer就当它是2004-12-31 00:00:00
    所以如果数据库记录格式为2004-12-31 12:30:00
    那么条件between '2004-12-30' and '2004-12-31'返回结果就为空.
    方法是将后参数加在一天'2005-1-1',就应该可以。