首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一次性安插一年时间

2012-07-28 
一次性插入一年时间能不能请教各位高手一个问题,怎样在SQL Server中一次性插入一年的时间呢?有没有这样的

一次性插入一年时间
能不能请教各位高手一个问题,怎样在SQL Server中一次性插入一年的时间呢?有没有这样的系统存储过程或者函数?

比如说一次性插入
  列名:年份 月份 日次
  2012 1 1
  2012 1 2
  2012 1 3
  2012 1 4
  2012 1 5
  2012 1 6
  2012 1 7
  2012 1 8
  2012 1 9
   
  ……
  等所有2012年的时间

[解决办法]

SQL code
declare @date1 datedeclare @date2 dateset @date1='2012-01-01'set @date2='2012-12-31';with tas(select     DATEADD(DD,number,@date1) as [date]from     master..spt_valueswhere     number between 0 and DATEDIFF(DD,@date1,@date2)    and type='p')select     YEAR([date]) as [year],    MONTH([date]) as [month],    DAY([date]) as [day]    into #tblfrom     tselect * from #tbl/*year    month    day2012    1    12012    1    22012    1    32012    1    42012    1    52012    1    62012    1    72012    1    82012    1    92012    1    102012    1    112012    1    122012    1    132012    1    142012    1    152012    1    162012    1    172012    1    182012    1    192012    1    202012    1    212012    1    222012    1    232012    1    242012    1    252012    1    262012    1    272012    1    282012    1    292012    1    302012    1    312012    2    12012    2    22012    2    32012    2    42012    2    52012    2    62012    2    72012    2    82012    2    92012    2    102012    2    112012    2    122012    2    132012    2    142012    2    152012    2    162012    2    172012    2    182012    2    192012    2    202012    2    212012    2    222012    2    232012    2    242012    2    252012    2    262012    2    272012    2    282012    2    292012    3    12012    3    22012    3    32012    3    42012    3    52012    3    62012    3    72012    3    82012    3    92012    3    102012    3    112012    3    122012    3    132012    3    142012    3    152012    3    162012    3    172012    3    182012    3    192012    3    202012    3    212012    3    222012    3    232012    3    242012    3    252012    3    262012    3    272012    3    282012    3    292012    3    302012    3    312012    4    12012    4    22012    4    32012    4    42012    4    52012    4    62012    4    72012    4    82012    4    92012    4    102012    4    112012    4    122012    4    132012    4    142012    4    152012    4    162012    4    172012    4    182012    4    192012    4    202012    4    212012    4    222012    4    232012    4    242012    4    252012    4    262012    4    272012    4    282012    4    292012    4    302012    5    12012    5    22012    5    32012    5    42012    5    52012    5    62012    5    72012    5    82012    5    92012    5    102012    5    112012    5    122012    5    132012    5    142012    5    152012    5    162012    5    172012    5    182012    5    192012    5    202012    5    212012    5    222012    5    232012    5    242012    5    252012    5    262012    5    272012    5    282012    5    292012    5    302012    5    312012    6    12012    6    22012    6    32012    6    42012    6    52012    6    62012    6    72012    6    82012    6    92012    6    102012    6    112012    6    122012    6    132012    6    142012    6    152012    6    162012    6    172012    6    182012    6    192012    6    202012    6    212012    6    222012    6    232012    6    242012    6    252012    6    262012    6    272012    6    282012    6    292012    6    302012    7    12012    7    22012    7    32012    7    42012    7    52012    7    62012    7    72012    7    82012    7    92012    7    102012    7    112012    7    122012    7    132012    7    142012    7    152012    7    162012    7    172012    7    182012    7    192012    7    202012    7    212012    7    222012    7    232012    7    242012    7    252012    7    262012    7    272012    7    282012    7    292012    7    302012    7    312012    8    12012    8    22012    8    32012    8    42012    8    52012    8    62012    8    72012    8    82012    8    92012    8    102012    8    112012    8    122012    8    132012    8    142012    8    152012    8    162012    8    172012    8    182012    8    192012    8    202012    8    212012    8    222012    8    232012    8    242012    8    252012    8    262012    8    272012    8    282012    8    292012    8    302012    8    312012    9    12012    9    22012    9    32012    9    42012    9    52012    9    62012    9    72012    9    82012    9    92012    9    102012    9    112012    9    122012    9    132012    9    142012    9    152012    9    162012    9    172012    9    182012    9    192012    9    202012    9    212012    9    222012    9    232012    9    242012    9    252012    9    262012    9    272012    9    282012    9    292012    9    302012    10    12012    10    22012    10    32012    10    42012    10    52012    10    62012    10    72012    10    82012    10    92012    10    102012    10    112012    10    122012    10    132012    10    142012    10    152012    10    162012    10    172012    10    182012    10    192012    10    202012    10    212012    10    222012    10    232012    10    242012    10    252012    10    262012    10    272012    10    282012    10    292012    10    302012    10    312012    11    12012    11    22012    11    32012    11    42012    11    52012    11    62012    11    72012    11    82012    11    92012    11    102012    11    112012    11    122012    11    132012    11    142012    11    152012    11    162012    11    172012    11    182012    11    192012    11    202012    11    212012    11    222012    11    232012    11    242012    11    252012    11    262012    11    272012    11    282012    11    292012    11    302012    12    12012    12    22012    12    32012    12    42012    12    52012    12    62012    12    72012    12    82012    12    92012    12    102012    12    112012    12    122012    12    132012    12    142012    12    152012    12    162012    12    172012    12    182012    12    192012    12    202012    12    212012    12    222012    12    232012    12    242012    12    252012    12    262012    12    272012    12    282012    12    292012    12    302012    12    31*/ 


[解决办法]

SQL code
create table tb (year int,month int, day int)goset datefirst 1declare @date_day datetimeset @date_day ='2012-01-05' ----手动输入(替换)每个月的月数即可declare @month_day intset @month_day=datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(@date_day) as varchar)+'-'+cast(month(@date_day) as varchar)+'-01' as datetime))))declare @month_first_day datetimeset @month_first_day= convert(varchar(10),dateadd(dd,-DatePart(day,dateadd(dd,-1,@date_day)),@date_day),120)insert into tbselect year(dateadd(day,number,@month_first_day)),MONTH(dateadd(day,number,@month_first_day)),DAY(dateadd(day,number,@month_first_day)) from master.dbo.spt_values where type='p' and number <@month_day go   select * from tb  /* year    month    day2012    1    12012    1    22012    1    32012    1    42012    1    52012    1    62012    1    72012    1    82012    1    92012    1    102012    1    112012    1    122012    1    132012    1    142012    1    152012    1    162012    1    172012    1    182012    1    192012    1    202012    1    212012    1    222012    1    232012    1    242012    1    252012    1    262012    1    272012    1    282012    1    292012    1    302012    1    31*/
[解决办法]
SQL code
declare @date1 datedeclare @date2 dateset @date1='2012-01-01'set @date2='2012-12-31';with tas(select    px=ROW_NUMBER()over(order by number),     DATEADD(DD,number,@date1) as [date]from     master..spt_valueswhere     number between 0 and DATEDIFF(DD,@date1,@date2)    and type='p'),m as(select     px,    YEAR([date]) as [year],    MONTH([date]) as [month],    DAY([date]) as [day]    into #tblfrom     t),nas(select     px=ROW_NUMBER()over(order by  ID),    IDfrom     另外一张表)insert tbselect     n.id,    m.[year],    m.[month],    m.[day]from     minner join    non    m.px=n.px 

热点排行
Bad Request.