zoukankan      html  css  js  c++  java
  • Cube中时间维度

    创建DW中时间维度表DimDate

    CREATE TABLE [dbo].[DimDate](  
    [TimeKey] int NOT NULL,  
        [TheDate] datetime NULL, --DateTime格式的日期  
        [TheDateName] nvarchar(10) NULL, --日期名称  
        [TheYear] smallint NULL,--年份  
        [TheYearName] nvarchar(10)NULL,--年份名称  
        [TheMonth] smallint NULL,--月份  
        [TheMonthName] nvarchar(10)NULL,--月份名称  
        [TheDay] smallint NULL,--
        [TheDayName] nvarchar(10)NULL,--日的名称  
        [TheQuarter] smallint NULL,--季度  
        [TheQuarterName] nvarchar(10) NULL,--季度名称  
        [TheWeek] smallint NULL,--星期  
        [TheWeekName] nvarchar(10)NULL,--星期名称    
        [Vacation_Mark] smallint NULL--节假日标志  
    )ON [PRIMARY] 



      插入数据

    DECLARE @TheDate datetime, @TheDateName nvarchar(10), @TheYear smallint, @TheYearName nvarchar(10), @TheMonth smallint, @TheMonthName nvarchar(10), @TheDay smallint, @TheDayName nvarchar(10), @TheQuarter smallint, @TheQuarterName nvarchar(10), @TheWeek smallint, @TheWeekName nvarchar(10), @Vacation_Mark smallint, @timeKey int, @dDate DATETIME,--存储起始日期和结束日期 @adddays smallint--存储日期增量 set @adddays = 1 --日期增量 set @dDate = '1/1/2005'--当前日期 WHILE @dDate <= '12/31/2020'--结束日期 BEGIN set @TheDate = @dDate set @timeKey = cast((left(convert(nvarchar,@TheDate,23),4)+substring(convert(nvarchar,@TheDate,23),6,2)+substring(convert(nvarchar,@TheDate,23),9,2))as int) set @TheDateName = REPLACE(CONVERT(nvarchar(20),@dDate,111),'/','-') set @TheYear = DATENAME(yy, @dDate) set @TheYearName = CAST(@TheYear as nvarchar)+'' set @TheMonth = DATENAME(mm, @dDate) set @TheMonthName =CAST(@TheMonth as nvarchar)+'' set @TheDay = DATENAME(dd, @dDate) set @TheDayName = CAST(@TheDay as nvarchar)+'' set @TheQuarter = DATENAME(Quarter, @dDate) set @TheQuarterName = '' + CAST(DATENAME(Quarter, @dDate)as varchar(1))+'季度' set @TheWeek = DATEPART(dw, @dDate) set @TheWeekName = DATENAME(dw,@dDate) set @Vacation_Mark = CASE WHEN(@TheWeek = 1 OR @TheWeek = 7)THEN 1 ELSE 0 END insert INTO DimDate(TimeKey,TheDate,TheDateName,TheYear,TheYearName,TheMonth,TheMonthName,TheDay, TheDayName,TheQuarter,TheQuarterName,TheWeek,TheWeekName,Vacation_Mark)VALUES ( @timeKey,@TheDate, @TheDateName,@TheYear,@TheYearName,@TheMonth,@TheMonthName,@TheDay,@TheDayName,@TheQuarter, @TheQuarterName,@TheWeek,@TheWeekName,@Vacation_Mark) set @dDate = @dDate + @adddays END GO

    努力把老板的双手搞残废,我顶替他的双手。

  • 相关阅读:
    PHP
    linux文件分割(将大的日志文件分割成小的)
    centos安装ssdb
    SSDB 数据库如何换用 rocksdb 引擎?
    A PHP extension for Facebook's RocksDB
    看电影有感
    视频格式(转的豆瓣)
    7月7号项目讲解总结
    java注解Annotation
    xml的解析
  • 原文地址:https://www.cnblogs.com/Gaton/p/2494391.html
Copyright © 2011-2022 走看看