dmonth在数据表中的格式为(yyyy-mm-dd)
在ComboBox1下拉框中显示的形式为yyyy-mm 如2005-11
我的ComboBox1Change如下:procedure TForm1.ComboBox1Change(Sender: TObject);
begin
    frPreview1.Clear;
    ADOquery1.Close;
    ADOquery1.SQL.Clear;
{
以下这句有问题,我想查找数据表中根据combobox1.Text显示的月份再加天数得到的结果该怎么做?如combobox1.Text显示2005-1,如何查找表中dmonth等于2005-1-1的记录?
}    ADOquery1.SQL.Add('select * from v_areaindex where dmonth=to_date('''+Trim(combobox1.Text)+'-1'+''',''yyyy-mm-dd'')  order by code');  
/////////////////////////////////////////////////////////////////////////////
    ADOquery1.Open;
    if Report.PrepareReport then                           
        Report.ShowPreparedReport;
        frPreview1.PageWidth;
end;

解决方案 »

  1. TDateTime类型的变量+1就是一天,
    如下代码会在memo里显示当前时间,以及明天(+1后)的时间。
    你的要求只要有个变量加上你的天数再查询就行了。procedure TForm1.Button1Click(Sender: TObject);
    var t:TDateTime;
    begin
      t:=Now();
      Memo1.Lines.Add(DateTimeToStr(t));
      t:=t+1;
      Memo1.Lines.Add(DateTimeToStr(t));
    end;
      

aliyun

类似问题 »