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

2016-01-29 16:43 303 1 收藏

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

【 tulaoshi.com - SQLServer 】

也许有了这张表,你的工作会轻松很多!
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

来源:https://www.tulaoshi.com/n/20160129/1499380.html

延伸阅读
Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。 表和视图 Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个...
标签: SQLServer
  随着数据库技术的不断发展及数据库管理系统的广泛应用,数据库中存储的数据量急剧增大,在大量的数据背后隐藏着许多重要的信息,如果能把这些信息从数据库中抽取出来,将为公司创造很多潜在的利润,而这种从海量数据库中挖掘信息的技术,就称之为数据挖掘。     数据挖掘工具能够对将来的趋势和行为进行预测,从而...
SELECT (case when a.colorder=1 then d.name else '' end) N'表名', a.colorder N'字段序号', a.name N'字段名', (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识', (case when (SELECT count(*) FROM sysobjects WHERE (name in ...
kendylan 于 8/30/2001 12:28:41 PM 加贴在 Joy ASP ←返回版面: % strConn="DBQ="+server.mappath("kendylan.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set objConn=server.createobject("Adodb.connection") objConn.open strConn set rsSchema=objConn.openSchema(20) rsSchema.movefirst Do Until rsSchema.EOF if...
    1.首先查看表空间的名字和所属文件 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;      2.增加数据文件 alter tablespace users add datafile '/u01/Oracle/oradata/umail/users02.dbf' size 4000M a...

经验教程

90

收藏

46
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部