日期:2014-05-18  浏览次数:20551 次

一次性插入一年时间
能不能请教各位高手一个问题,怎样在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 date
declare @date2 date
set @date1='2012-01-01'
set @date2='2012-12-31'
;with t
as(
select 
    DATEADD(DD,number,@date1) as [date]
from 
    master..spt_values
where 
    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 #tbl
from 
    t
select * from #tbl
/*
year    month    day
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    1    10
2012    1    11
2012    1    12
2012    1    13
2012    1    14
2012    1    15
2012    1    16
2012    1    17
2012    1    18
2012    1    19
2012    1    20
2012    1    21
2012    1    22
2012    1    23
2012    1    24
2012    1    25
2012    1    26
2012    1    27
2012    1    28
2012    1    29
2012    1    30
2012    1    31
2012    2    1
2012    2    2
2012    2    3
2012    2    4
2012    2    5
2012    2    6
2012    2    7
2012    2    8
2012    2    9
2012    2    10
2012    2    11
2012    2    12
2012    2    13
2012    2    14
2012    2    15
2012    2    16
2012    2    17
2012    2    18
2012    2    19
2012    2    20
2012    2    21
2012    2    22
2012    2    23
2012    2    24
2012    2    25
2012    2    26
2012    2    27
2012    2    28
2012    2    29
2012    3    1
2012    3    2
2012    3    3
2012    3    4
2012    3    5
2012    3    6
2012    3    7
2012    3    8
2012    3    9
2012    3    10
2012    3    11
2012    3    12
2012    3    13
2012    3    14
2012    3    15
2012    3    16
2012    3    17
2012    3    18
2012    3    19
2012    3    20
2012    3    21
2012    3    22
2012    3    23
2012    3    24
2012    3    25
2012    3    26
2012    3    27
2012    3    28
2012    3    29
2012    3    30
2012    3    31
2012    4    1
2012    4    2
2012    4    3
2012    4    4
2012    4    5
2012    4    6
2012    4    7
2012    4    8
2012    4    9
2012    4    10
2012    4    11
2012    4    12
2012    4    13
2012    4    14
2012    4    15
2012    4    16
2012    4    17
2012    4    18
2012    4    19
2012    4    20
2012    4    21
2012    4    22
2012    4    23
2012    4    24
2012    4    25
2012    4    26
2012    4    27
2012    4    28
2012    4    29
2012    4    30
2012    5    1
2012    5    2
2012    5    3
2012    5    4
2012    5    5
2012    5    6
2012    5    7
2012    5    8
2012    5    9
2012    5    10
2012    5    11
2012    5    12
2012    5    13
2012    5    14
2012    5    15
2012    5    16
2012    5    17
2012    5    18
2012    5    19
2012    5    20
2012    5    21
2012    5    22
2012    5    23
2012    5    24
2012    5    25
2012    5    26
2012    5    27
2012    5    28
2012    5    29
2012    5    30
2012    5    31
2012    6    1
2012    6    2
2012    6    3
2012    6    4
2012    6    5
2012    6    6
2012    6    7
2012    6    8
2012    6    9
2012    6    10
2012    6    11
2012    6    12
2012    6    13
2012    6    14
2012    6    15
2012    6    16
2012    6    17
2012    6    18
2012    6    19
2012    6    20
2012    6    21
2012    6    22
2012    6    23
2012    6    24
2012    6    25
2012    6    26
2012    6    27
2012    6    28
2012    6    29
2012    6    30
2012    7    1
2012    7    2
2012    7    3
2012    7    4
2012    7    5
2012