时间维度创建
来源:互联网 发布:计算机二级题库软件 编辑:程序博客网 时间:2024/04/20 14:51
转一篇文章,写的关于时间维度创建的方法,非常快。
原文:http://space.itpub.net/14321372/viewspace-567541
在实施商业智能项目的时候最常用到的一个维度表就属时间维度表了。下面给出一个时间维度表的例子,并利用自定义函数为时间维度表填充数据。
- 创建一个时间维度表:
CREATE TABLE [dbo].[](
[DateID] [int] NULL,
[Date] [smalldatetime] NULL,
[Year] [smallint] NULL,
[Month] [tinyint] NULL,
[WeekDay] [tinyint] NULL,
[DayOfMonth] [tinyint] NULL,
[Quarter] [tinyint] NULL,
[MonthName] [varchar](9) NULL,
[DayName] [varchar](9) NULL,
[QuarterName] [varchar](6) NULL,
[DayOfYear] [smallint] NULL) ON [PRIMARY]
2. 利用自定义函数为时间维度表填充数据:
自定义函数:
CREATE FUNCTION [dbo].[DATELIST]
(
@BEGIN_DATE AS DATETIME,
@END_TIME AS DATETIME
)
RETURNS @TEMPTABLE TABLE
(
DateID INT,
Date SMALLDATETIME,
Year SMALLINT,
Month TINYINT,
WeekDay TINYINT,
DayOfMonth TINYINT,
Quarter TINYINT,
MonthName varchar (9),
DayName varchar (9),
QuarterName varchar (6),
DayOfYear smallint
)
AS
BEGIN
WHILE(@BEGIN_DATE<=@END_TIME)
BEGIN
INSERT INTO @TEMPTABLE(DateID,Date,Year,Month,WeekDay,DayOfMonth,Quarter,MonthName,DayName,QuarterName,DayOfYear)
VALUES(
CONVERT(INT,CONVERT(VARCHAR, @BEGIN_DATE, 112)),
@BEGIN_DATE,
DATEPART(YEAR,@BEGIN_DATE),
DATEPART(MONTH,@BEGIN_DATE),
DATEPART(DW,@BEGIN_DATE),
DATEPART(D,@BEGIN_DATE),
DATEPART(Q,@BEGIN_DATE),
CASE DATEPART(MM,@BEGIN_DATE)
WHEN 1 THEN 'January'
WHEN 2 THEN 'February'
WHEN 3 THEN 'March'
WHEN 4 THEN 'April'
WHEN 5 THEN 'May'
WHEN 6 THEN 'June'
WHEN 7 THEN 'July'
WHEN 8 THEN 'August'
WHEN 9 THEN 'September'
WHEN 10 THEN 'October'
WHEN 11 THEN 'November'
ELSE 'December'
END,
CASE DATEPART(DW,@BEGIN_DATE)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
ELSE 'Saturday'
END,
CASE DATEPART(Q,@BEGIN_DATE)
WHEN 1 THEN 'First'
WHEN 2 THEN 'Second'
WHEN 3 THEN 'Third'
ELSE 'Fourth'
END,
DATEPART(DY,@BEGIN_DATE)
)
SET @BEGIN_DATE=@BEGIN_DATE+1
END
RETURN
END测试:
SELECT * FROM DATELIST('20090101','20091231')
- 创建时间维度数据
- 时间维度创建
- 创建时间维度数据
- Oracle创建时间维度
- mysql中创建时间维度
- MS SQL Server 创建时间维度
- mysql创建时间维度的sql脚本
- 数据仓库开发之路--时间维度的创建
- Oracle中创建时间维度表并插入数据
- 数据仓库时间维度
- Cube中时间维度
- 数据仓库的时间维度
- HBase中的时间维度
- 关注时间维度
- HBase中的时间维度
- HBase中的时间维度
- mysql时间维度表。
- My97datepicker时间维度切换
- C++ Builder 初学问与答(六)
- C++ Builder 初学问与答(七)
- C++ Builder 初学问与答(八)
- C++ Builder 初学问与答 (九)
- C++ Builder 初学问与答 (十)
- 时间维度创建
- C++ Builder 初学问与答 (十一)
- TCP窗口的选择
- C++ Builder 初学问与答(十二)
- C++ Builder初学问与答(十三)
- C++ Builder初学问与答(十四)
- C++ Builder 初学问与答(十五)
- 在javascript中读取struts2 s:datetimepicker中的值
- C++ Builder 初学问与答(十六)