paradox数据库中类型为D的日期字段怎么查询呢? 比如查询该日期字段为2004-2-1到2004-12-31之间的记录怎么查呢?

解决方案 »

  1.   

    一.
    参数
    二.
    EXTRACT函数
    比如:
    SELECT EXTRACT(YEAR FROM HIRE_DATE)
    FROM EMPLOYEE
      

  2.   

    select *
    form [table]
    where [date] between '2004-2-1' and '2004-12-31'
      

  3.   

    用datetimepicker 接受数据
    begin
    datamodule5.Query2.Close;
    datamodule5.Query2.SQL.Clear;
    datamodule5.Query2.SQL.add('select distinct ky_lb,count(ky_lb) as ky_zs,count(ky_lb) as ky_cfs from table2 where ky_fb>:A and ky_fb<:B group by ky_lb');
    datamodule5.Query2.Params.ParamByName('A').AsDateTime:=datetimepicker1.DateTime;
    datamodule5.Query2.Params.ParamByName('B').AsDateTime:=datetimepicker2.DateTime;
    datamodule5.Query2.Prepare;
    datamodule5.Query2.Open;
    datamodule5.Query2.Refresh;
    end;
      

  4.   

    with Query1.SQL do begin
      Clear;
      Add(' SELECT * ');
      Add(' FROM "Table1.DB" ');
      Add(' WHERE (日期 >= "2004-2-1") AND (日期 < "2004-12-31")');
    end;説明:日期字段用""括起来
      

  5.   

    DecodeDate(StartDate.Date,BSyear,BSMonth,BSDay);
    DecodeDate(EndDate.Date,ESyear,ESMonth,ESDay);
    with query1 do
    begin
    close;
    sql.clear;
    sql.add('select * form [table]');
    sql.add('where StopDate>=:BeginDate and  StopDate<=:EndDate');
    Query.ParamByName('BeginDate').AsDateTime:=EncodeDate(BSYear,BSMonth,BSDay);
    Query.ParamByName('EndDate').AsDateTime:=EncodeDate(ESYear,ESMonth,ESDay)
    open;
    end;
      

  6.   

    with Query1.SQL do begin
      Clear;
      Add(' SELECT * '+' FROM "Table1.DB" '+' WHERE (日期 >= "2004-2-1") AND (日期 < "2004-12-31")');
    end;