我用的ado+access,table1
  表中有字段date 为"日期/时间"型,格式为"短日期"我想用datetimepicker控件查询出符合日起条件的纪录,我用以下的代码
    with adoquery1 do 
 begin
   close;
   sql.clear;
   sql.add('select * from table1 where date>=:low ') 
   parameters[0].value:=formateDateTime('yyyy-mm-dd',DateTimePicker1.date);
   open;
end
为什么执行后总是查不到内容,表中明明有满足条件的纪录存在,但就是查不到,请问该怎么解决这个查询?

解决方案 »

  1.   

    Access数据库的日期格式两边要加上#,如#2001-12-12#
      

  2.   

    你用一label显示一下数据库里的日期,看一下格式
      

  3.   

    Access数据库的日期格式两边要加上#,如#2001-12-12#正确!
      

  4.   

    sqlserver日期查询:'2001-12-12'
    Access日期查询:#2001-12-12#
      

  5.   

    那个"date"的日期类型为:"2001-12-12",具体在代码中怎么加#,我用#date#
    不行啊!
      

  6.   

    with adoquery1 do 
     begin
       close;
       sql.clear;
       sql.add('select * from table1 where date>=:low ') 
       parameters[0].value:=DateToStr(formateDateTime('yyyy-mm-dd',DateTimePicker1.date));
       open;
    end
      

  7.   

    Access数据库的日期格式两边要加上#,如#2001-12-12#正确!不能#date#,应该在比较的变量上加##。字段名不能加。
      

  8.   

    那么我上边的代码如果要实现应该怎么办?
      with adoquery1 do 
     begin
       close;
       sql.clear;
       sql.add('select * from table1 where date>=:low ') 
       parameters[0].value:=formateDateTime('yyyy-mm-dd',DateTimePicker1.date);
       open;
    end
    就是low应该怎么样转换为#2003-12-12#这种格式,我用
      parameters[0].value:=formateDateTime('#yyyy-mm-dd#',DateTimePicker1.date);
    但是还是查不到结果,想要实现在一个datetimepicker中选一个日期,然后在查找出所有
    日期大于这个日期的记录,该怎么办?麻烦哪位老兄给的详细点。
     直接用sql.add('select * from table1 where date>= #2000-12-12#')确实可以查到,
    但我想让后边的限定日期可选,#2000-12-12#是不是string类型的。