科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何让你的数据库产生一张详细的日历表

如何让你的数据库产生一张详细的日历表

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文将为大家介绍如何让数据库产生一张详细的日历表。

作者:赛迪网 97267 来源:天新网 2008年3月24日

关键字: 数据库 SQL SQL Server Mssql

  • 评论
  • 分享微博
  • 分享邮件

问:如何让数据库产生一张详细的日历表?

答:详细的解决方法请参考下面的这张表:

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/2007'   --开始日期   
        
WHILE   @dDate   <   '12/31/2007'     --结束日期   
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
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章