请教使用 delphi 的朋友一个问题我的这段程序不出结果数据表结构:表名:  aa
aa    自动编号
bb    文本
cc    日期/时间表的内容aa              bb                 cc1               b1                 2003-5-30 
2               b2                 2003-6-30
3               b3                 2003-7-30 
4               b4                 2003-8-30       目的:
    选出 日期 bb 大于 2003-6-30 的记录方法一 :   不出结果SqlStr := 'select * from aa  where  cc > 2003-6-30';
Query1.Active := false ;
Query1.SQL.Clear ;
Query1.SQL.Add(SqlStr);
Query1.Active := true ;
方法二 :   不出结果设置 DateTimePicker1.date 的值 为 2003-6-30 SqlStr := 'select * from aa where cc <'+DateToStr(DateTimePicker1.date);
Query1.Active := false ;
Query1.SQL.Clear ;
Query1.SQL.Add(SqlStr);
Query1.Active := true ;请问各位大虾,那里错了

解决方案 »

  1.   

    1SqlStr := 'select * from aa  where  cc > ''2003-6-30''';
    Query1.Active := false ;
    Query1.SQL.Clear ;
    Query1.SQL.Add(SqlStr);
    Query1.Active := true ;2
    SqlStr := 'select * from aa where cc <'''+DateToStr(DateTimePicker1.date) + '''';
    Query1.Active := false ;
    Query1.SQL.Clear ;
    Query1.SQL.Add(SqlStr);
    Query1.Active := true ;
      

  2.   

    SqlStr := 'select * from aa where cc <:date');
    query1.paramaters.parabyname('date').value:=DateTimePicker1.date;
    .
    .
    .
    .
      

  3.   

    方法一 :   不出结果SqlStr := 'select * from aa  where  cc > 2003-6-30';
    数据库将2003-6-30变为1967,再变为一个极小的时间,当然检不出结果。表示日期时得加引号。
    方法二与一同理,可改为
    SqlStr := 'select * from aa where cc <'+DateToStr(DateTimePicker1.date);
    ->SqlStr := 'select * from aa where cc <'''+formatdatetime('yyyy-MM-dd',DateTimePicker1.date)+'''';