SELECT *
FROM TABLE1
WHERE RQ >= 2001-12-01 AND RQ <= 2001-12-31
/*比较直观的写法*/

解决方案 »

  1.   

    SELECT *
    FROM TABLE1
    WHERE RQ >=''2001-12-01'' AND RQ <= ''2001-12-31''
      

  2.   

    把EDIT。TEXT拿出来用“+”运算符拼接到SQL语句中去。
      

  3.   

    var
      vMaxDay: Integer;
    begin
      //参考DateUtils.DaysInAMonth()
      case StrToIntDef(EditMonth.Text, 0) of 
        1, 3, 5, 7, 8, 10, 12: vMaxDay := 31;
        4, 6, 9, 11: vMaxDay := 30; 
        2: if IsLeapYear(MyYear) then 
             vMaxDay := 28
           else vMaxDay := 29;
      else Exit;
      end;  Query1.Close;
      Query1.SQL.Text := Format(
    'SELECT *'#13#10 +
    'FROM TABLE1'#13#10
    'WHERE RQ >=''%s-%s-01'' AND RQ <= ''%s-%s-%d'''#13#10
        [EditYear.Text, EditMonth.Text, EditYear.Text, EditMonth.Text, vMaxDay];
      Query1.Open;
    end;