当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 让数据库产生一张详细的日历表

MSSQL
sqlserver2005 xml字段的读写操作
SQLServer Job运行成功或失败时发送电子邮件通知的图文教程
一个删除指定表的所有索引和统计的过程
SQLServer2005 的查询独占模拟
SQLServer2005 中的几个统计技巧
SQLServer 数据集合的交、并、差集运算
讲解SQL Server系统数据库的工作原理
Windows Vista系统服务安全强化策略
SQL Server中导入导出数据的三种方式
SQL Server用索引视图查看性能状况
缩小SQL Server数据库的日志文件
在不同版本的SQL Server中存储数据
Windows Server 2008 十大出色功能
SQL Server系统数据库的工作原理
SQL Server中“函数”的两种用法
掌握SQL Server数据库的实用技巧
SQL Server2000数据库分离与附加
SQL Server 2008的一些新特点及独到之处
删除SQL Server 2000所有的危险扩展
SQL 2005身份证函数包含验证和15位转18位

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 118 ::
收藏到网摘: n/a

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