cdate:=datetimepicker1.Date;
adoquery1.SQL.Add('select * from hire where edate <='+ datetostr(cdate));

解决方案 »

  1.   

    //cdate:=datetimepicker1.Date;
    edate在sql server里是smalldatetime的型的
     intcount:=ADOQuery1.RecordCount;一直是零//
    这个只是对sql语句的说明 我会写在sql下面的 sb 啊
      

  2.   

    procedure Tdateout_frm.BitBtn1Click(Sender: TObject);
    var
      cdate:tdate;
      i:integer;
      ListItem: TListItem;
      p:^integer;
    begin
      cdate:=datetimepicker1.Date;
      edit1.Text:=datetostr(cdate);
      ListView1.Items.Clear;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('select * from hire where Stop_date <='+ datetostr(cdate));
      adoquery1.Open;
      intcount:=ADOQuery1.RecordCount;
      Label2.Caption :=inttostr(intcount)+'个';
        for i:=1 to intcount do
        begin
          ListItem:=ListView1.Items.Add;
          ListItem.Caption:=ADOQuery1.Fields[0].AsString;
          ListItem.SubItems.Add(ADOQuery1.Fields[6].asString);
          ListITem.SubItems.Add(DateToStr(ADOQuery1.Fields[2].asdatetime));
          ListItem.SubItems.Add(DateToStr(ADOQuery1.Fields[3].asdatetime));
          ListItem.SubItems.Add(ADOQuery1.Fields[1].asString);
          ListItem.SubItems.Add(format('%8.2f¥',[ADOQuery1.Fields[4].asfloat]));
          ListItem.SubItems.Add(format('%8.2f¥',[ADOQuery1.Fields[5].asfloat]));
          new(p);
          p^:=ADOQuery1.Fields[7].AsInteger;
          listitem.Data:=p;
          ADOQuery1.Next;
        end;
        ADOQuery1.Close;
    end;end.
    不论我怎么改变时间 就是intcount:=ADOQuery1.RecordCount;为零
    选不出数据 错在哪里啊
      

  3.   

    什么数据库
    Access SQL语句中日期应为如下形式
      #2002-01-22#
    Sql Server 或其他,SQL语句中日期应为
     '2002-01-22'
      

  4.   

    是Sql Server
    帮忙看看程序
    谢谢 
      

  5.   

    cdate:=datetimepicker1.Date;
    adoquery1.SQL.Add('select * from hire where edate <='''+ datetostr(cdate)+'''');orcdate:=datetimepicker1.Date;
    adoquery1.SQL.Add('select * from hire where edate <='''+ FormatDatatime('yyyy-mm-dd',cdate)+'''');