Advertisement
Guest User

SQL Script - Time Dimension

a guest
Jan 16th, 2012
524
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.42 KB | None | 0 0
  1. DROP TABLE Dim_Time_Generated
  2. CREATE TABLE Dim_Time_Generated
  3. (
  4.     DateID       VARCHAR(8) NOT NULL    PRIMARY KEY
  5. ,   MonthName    VARCHAR(9) NOT NULL
  6. ,   MonthNumber  INT        NOT NULL
  7. ,   DayNumber    INT        NOT NULL
  8. ,   DayName      VARCHAR(9) NOT NULL
  9. ,   Quarter      INT        NOT NULL
  10. ,   QuarterName  CHAR(7)    NOT NULL
  11. ,   YEAR         INT        NOT NULL
  12. ,   FullDate DATETIME NOT NULL
  13. )
  14.  
  15. BEGIN
  16.     SET DATEFIRST 1
  17.     DECLARE @startdate  DATETIME
  18.     DECLARE @enddate    DATETIME
  19.     DECLARE @DATE       DATETIME
  20.     DECLARE @offset     INT
  21.     DECLARE @dateId     VARCHAR(8)
  22.     SET     @startdate  = '2009-01-01'
  23.     SET     @enddate    = '2011-12-31'
  24.     SET     @offset     = 0
  25.     SET     @DATE       = DATEADD(dd, @offset, @startdate)
  26.     WHILE @DATE <= @enddate
  27.     BEGIN
  28.         SET @dateId = CONVERT(VARCHAR(8), @DATE, 112)   -- Convert to yyyymmdd format
  29.         INSERT INTO Dim_Time_Generated(DateID,MonthName,MonthNumber,DayNumber,DayName,Quarter,QuarterName,YEAR,FullDate)
  30.         VALUES ( @dateId             --DateID
  31.             ,DATENAME(mm, @DATE)     --MonthName
  32.             ,DATEPART(mm, @DATE)     --MonthNumber
  33.             ,DATEPART(dd, @DATE)     --DayOfMonth
  34.             ,DATENAME(DW, @DATE)     --DayNAme
  35.             ,DATEPART(qq, @DATE)     --Quarter
  36.             ,'Q' + DATENAME(qq, @DATE)   --QuarterName
  37.             ,DATEPART(yy, @DATE)     --Year
  38.             ,@DATE                   --FullDate
  39.         )
  40.         SET  @offset    = @offset + 1
  41.         SET  @DATE      = DATEADD(dd, @offset, @startdate)
  42.     END
  43. END
  44. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement