让数据库产生一张详细的日历表(学习篇)

--也许有了这张表,你的工作会轻松很多!  
   
  CREATE   TABLE   [dbo].[time_dimension]   (  
        [time_id]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,  
        [the_date]   [datetime]   NULL   ,  
        [the_day]   [nvarchar]   (15)   NULL   ,  
        [the_month]   [nvarchar]   (15)   NULL   ,  
        [the_year]   [smallint]   NULL   ,  
        [day_of_month]   [smallint]   NULL   ,  
        [week_of_year]   [smallint]   NULL   ,  
        [month_of_year]   [smallint]   NULL   ,  
        [quarter]   [nvarchar]   (2)   NULL   ,  
        [fiscal_period]   [nvarchar]   (20)   NULL  
  )   ON   [PRIMARY]  
   
       
  DECLARE   @WeekString   varchar(12),  
  @dDate   SMALLDATETIME,  
  @sMonth   varchar(20),  
  @iYear   smallint,  
  @iDayOfMonth   smallint,  
  @iWeekOfYear   smallint,  
  @iMonthOfYear   smallint,  
  @sQuarter   varchar(2),  
  @sSQL   varchar(100),  
  @adddays   int  
       
  SELECT   @adddays   =   1   --日期增量(可以自由设定)  
  SELECT   @dDate   =   '01/01/2002'   --开始日期  
       
  WHILE   @dDate   <   '12/31/2004'     --结束日期  
  BEGIN  
       
        SELECT   @WeekString   =   DATENAME   (dw,   @dDate)  
        SELECT   @sMonth=DATENAME(mm,@dDate)  
        SELECT   @iYear=   DATENAME   (yy,   @dDate)  
        SELECT   @iDayOfMonth=DATENAME   (dd,   @dDate)  
        SELECT   @iWeekOfYear=   DATENAME   (week,   @dDate)  
        SELECT   @iMonthOfYear=DATEPART(month,   @dDate)  
        SELECT   @sQuarter   =   'Q'   +     CAST(DATENAME   (quarter,   @dDate)as   varchar(1))  
   
        INSERT   INTO   time_dimension(the_date,   the_day,   the_month,   the_year,  
        day_of_month,  
        week_of_year,   month_of_year,   quarter)   VALUES  
        (@dDate,   @WeekString,   @sMonth,   @iYear,   @iDayOfMonth,   @iWeekOfYear,  
        @iMonthOfYear,   @sQuarter)  
        SELECT   @dDate   =   @dDate   +   @adddays  
  END  
  GO  
   
  select   *   from   time_dimension  

 

引用自:http://topic.csdn.net/t/20031226/23/2607995.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值