数据仓库的时间维度
2012-06-21 16:52
176 查看
数据仓库中最重要的维度就可以说是时间维度了,我用了存储过程在每个月的月初创建当月的时间,有点麻烦但是将需求完全的达到了,分别产生了
[日期key] [完整日期] [星期几] [当月的第几天] [当年的第几天] [当年的第几周] [当年的第几月] [当年的第几季度] [日历年] 等几个维度,
USE [数据库DW]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[产生日期] AS
declare @now date=convert(date,getdate())
declare @day nvarchar(2)
while month(@now)=month(getdate())
begin
if DATENAME(DD,@now)<10 set @day='0'+DATENAME(DD,@now)
else set @day=DATENAME(DD,@now)
insert into Dim日期
values (convert(int,DATENAME(YY,@now)+DATENAME(MM,@now)+@day),@now,DATEPART(DW,@now),day(@now),DATEPART(DY,@now),DATEPART(WK,@now),month(@now),DATEPART(QQ,@now),year(@now))
set @now=DATEADD(DAY,1,@now)
end
GO
在正式使用的时候可以使用触发器 达到目的
[日期key] [完整日期] [星期几] [当月的第几天] [当年的第几天] [当年的第几周] [当年的第几月] [当年的第几季度] [日历年] 等几个维度,
USE [数据库DW]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[产生日期] AS
declare @now date=convert(date,getdate())
declare @day nvarchar(2)
while month(@now)=month(getdate())
begin
if DATENAME(DD,@now)<10 set @day='0'+DATENAME(DD,@now)
else set @day=DATENAME(DD,@now)
insert into Dim日期
values (convert(int,DATENAME(YY,@now)+DATENAME(MM,@now)+@day),@now,DATEPART(DW,@now),day(@now),DATEPART(DY,@now),DATEPART(WK,@now),month(@now),DATEPART(QQ,@now),year(@now))
set @now=DATEADD(DAY,1,@now)
end
GO
在正式使用的时候可以使用触发器 达到目的
相关文章推荐
- 数据仓库脚本生成时间维度
- 系统设计之时间维度[数据仓库]
- 数据仓库时间维度
- 数据仓库开发之路之三--时间维度的创建
- 数据仓库的时间维度表 Sql
- 数据仓库开发之路--时间维度的创建
- 系统设计之时间维度[数据仓库]
- 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(五)——数据仓库维度建模实例
- 《BI那点儿事—数据的艺术》理解维度数据仓库——事实表、维度表、聚合表
- 数据仓库专题(22):总线架构和维度建模优势-杂项
- db2通过游标生成时间维度表数据
- 维度模型数据仓库(十一) —— 维度层次
- 6 关于数据仓库维度数据处理的方法探究系列——缓慢变化维处理——记录最新记录及上一次历史
- 微软BI 之SSIS 系列 - 数据仓库中实现 Slowly Changing Dimension 缓慢渐变维度的三种方式
- 数据仓库时间维表规范
- 维度模型数据仓库(十九) —— 维度合并
- 维度模型数据仓库(一) —— 概述
- 数据仓库专题(10)-文本事实和杂项维度
- 《分析服务从入门到精通读书笔记》第一章、维度数据仓库(4)
- 维度模型数据仓库(二十) —— 累积的度量