不太明白ls意思,
你的联合查询可以查到前五天得数据了select * from
(
select * from "表1" union select * from "表2" union select * from "表3" union select * from "表4" union select * from "表5"
)a也可以建view 再查

解决方案 »

  1.   

    得到当天的日期,然后用sql的函数dateadd(d,-1,getdate())这样就是前一天的啦
    依次类推就可以啦
      

  2.   

    create table s20080101(id int)
    go
    insert s20080101 select 1
    gocreate table s20080102(id int)
    go
    insert s20080102 select 5
    gocreate table s20080105(id int)
    go
    insert s20080105 select 101
    godeclare @s varchar(8000)
    select @s=isnull(@s+' union all select * from ','select * from ') + name from sysobjects where xtype='u' and isdate(stuff(name,1,1,''))=1exec(@s)
    /*
    id
    1
    5
    101*/
    go
    drop table s20080101,s20080102,s20080105
    go
      

  3.   

    首先得到当前日期,然后把当期日期的昨天,前天,大前天都得到,这几个日期的前面加上S,然后根据得到的四个表名查询数据,union
      

  4.   

    create table s20080101(id int)
    go
    insert s20080101 select 1
    gocreate table s20080102(id int)
    go
    insert s20080102 select 5
    gocreate table s20080105(id int)
    go
    insert s20080105 select 101
    go--以下三表有效
    create table s20080401(id int)
    go
    insert s20080401 select 401
    go
    create table s20080402(id int)
    go
    insert s20080402 select 402
    gocreate table s20080403(id int)
    go
    insert s20080403 select 403
    go
    declare @s varchar(8000)
    select @s=isnull(@s+' union all select * from ','select * from ') + name 
    from sysobjects where xtype='u' 
    and case when isdate(stuff(name,1,1,''))=1 then 
    datediff(dd,stuff(name,1,1,''),getdate())
    else 5 
    end 
        between 0 and 4exec(@s)
    /*
    401
    402
    403
    */
    go
    drop table s20080101,s20080102,s20080105,s20080401,s20080402,s20080403
    go
      

  5.   

    可能我没有说清楚,我的数据表是每天自动生成的,我现在不会的地方就是怎么用编程实现日期变化
    //当前输入的日期
            System.DateTime time = System.DateTime.ParseExact(Ddlyear.SelectedItem.Text + Ddlmonth.SelectedItem.Text + Ddlday.SelectedItem.Text, "yyyyMMdd", null);
            System.DateTime time1 = System.DateTime.Parse(time.ToString());
            string fbsj = time1.ToString("yyyyMMdd");
            //合成当前日期库
            string fbsja = "s" + fbsj;
            //合成当前日期前一天库
            int fbsjb = Convert.ToInt32(fbsj) -1;
            string fbsjbb = "s" + fbsjb;
            //合成当前日期前两天库
            int fbsjc = Convert.ToInt32(fbsj) - 2;
            string fbsjcc = "s" + fbsjc;
            //合成当前日期前三天库
            int fbsjd = Convert.ToInt32(fbsj) - 3;
            string fbsjdd = "s" + fbsjd;
            //合成当前日期前四天库但有个问题就是如果当前日期是20080401时,合成当前日期前一天库就不是20080331了
      

  6.   

    System.DateTime time1 = System.DateTime.Parse(time.ToString()); 
    System.DateTime time2=time1.AddDays(-1);//前一天,其他類推
      

  7.   

    不知道你想表达什么?getdate就是参照日,如果你要修改参照日,那么将getdate改为你要做为参照日(起点)的日期.between 0 and 4 表示4天内。 你要取几天,改 0 and 几.5表示不在这个范围内,即对 表名不符合 日期编号的表进行排除。 如果你的 0 and 几 中的 几大于等于5,那么把5 改大,总之 5 位于between and 的范围之外。
      

  8.   

    在数据库中 当前时间 
    'S'+replace(convert(varchar(10),getdate(),20),'-','')  --S20080403'S'+replace(convert(varchar(10),dateadd(day,-1,getdate()),20),'-','')   --S20080402'S'+replace(convert(varchar(10),dateadd(day,-2,getdate()),20),'-','')   --S20080401'S'+replace(convert(varchar(10),dateadd(day,-3,getdate()),20),'-','')   --S20080331'S'+replace(convert(varchar(10),dateadd(day,-4,getdate()),20),'-','')   --S20080330
      

  9.   

    需要replace吗?datetime转varchar
    convert(varchar(10),getdate(),120) 得到 20080403varchar转datetime
    datediff(dd,'20080403',getdate())
    自己会隐式转换的。
      

  10.   

    20和120是一样的,得到 yyyy-MM-dd. 20和120只是两种规范不一样。
    我上面打错了,要得到 yyyyMMdd 使用112编码。select convert(varchar(8),getdate(),112)
      

  11.   

    好复杂
    你应该到sql的论坛去问
    那里知道做的人比较多.