欢迎光临
我们一直在努力

让数据库产生一张详细的日历表-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

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

也许有了这张表,你的工作会轻松很多!

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 让数据库产生一张详细的日历表-数据库专栏,SQL Server
分享到: 更多 (0)

相关推荐

  • 暂无文章