各位大侠:  程序运行中根据时间创建了多个结构相同的表:table0101,table0102,table0103。每个表记录一天的数据,以时间为主键。0101代表1月1号  现在的问题是:我想查询0101 12:00:00 到 0103  12:00:00 的数据,该如何操作呢?

解决方案 »

  1.   

    类似procedure TForm1.Button1Click(Sender: TObject); 
    var 
      StrList:TStringList; 
      I:Integer; 
    begin 
      StrList:=TStringList.Create; 
      I:=1; 
      With ADOQuery1 do 
      begin 
        Close; 
        SQL.Clear; 
        SQL.Add('select name from sysobjects where xtype=''U'' and SubString(name,1,7)='''+日期过滤+''' ' );//SubString(name,1,7)是截取出来的日期.我不知道你表名具体是怎样的所以写了是1 TO 7个字符. 
        Open; 
      end; 
      ADOQuery1.First; 
      with ADOQuery1 do 
      begin 
        While not Eof do 
        begin 
          StrList.Add(' Select 名称   数量   单价   金额   种类 from '+FieldByName('Name').AsString+' '); 
          if I <> ADOQuery1.RecordCount then 
          StrList.Add(' Union all '); 
          Inc(I); 
          Next; 
        end; 
      end; 
      ShowMessage(StrList.Text); 
    end; 
    剩下的自己在解决