Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. SET NOCOUNT ON
  2.  
  3. TRUNCATE TABLE Calendar
  4.  
  5. DECLARE @CurrentDate DATE = '2010-01-01'
  6. DECLARE @EndDate DATE = '2020-12-31'
  7.  
  8. WHILE @CurrentDate < @EndDate
  9. BEGIN
  10. INSERT INTO [dbo].[Calendar] (
  11. [DateKey],
  12. [Date],
  13. [Day],
  14. [DaySuffix],
  15. [Weekday],
  16. [WeekDayName],
  17. [WeekDayName_Short],
  18. [WeekDayName_FirstLetter],
  19. [DOWInMonth],
  20. [DayOfYear],
  21. [WeekOfMonth],
  22. [WeekOfYear],
  23. [Month],
  24. [MonthName],
  25. [MonthName_Short],
  26. [MonthName_FirstLetter],
  27. [Quarter],
  28. [QuarterName],
  29. [Year],
  30. [MMYYYY],
  31. [MonthYear],
  32. [IsWeekend],
  33. [IsHoliday],
  34. [FirstDateofYear],
  35. [LastDateofYear],
  36. [FirstDateofQuater],
  37. [LastDateofQuater],
  38. [FirstDateofMonth],
  39. [LastDateofMonth],
  40. [FirstDateofWeek],
  41. [LastDateofWeek]
  42. )
  43. SELECT DateKey = YEAR(@CurrentDate) * 10000 + MONTH(@CurrentDate) * 100 + DAY(@CurrentDate),
  44. DATE = @CurrentDate,
  45. Day = DAY(@CurrentDate),
  46. [DaySuffix] = CASE
  47. WHEN DAY(@CurrentDate) = 1
  48. OR DAY(@CurrentDate) = 21
  49. OR DAY(@CurrentDate) = 31
  50. THEN 'st'
  51. WHEN DAY(@CurrentDate) = 2
  52. OR DAY(@CurrentDate) = 22
  53. THEN 'nd'
  54. WHEN DAY(@CurrentDate) = 3
  55. OR DAY(@CurrentDate) = 23
  56. THEN 'rd'
  57. ELSE 'th'
  58. END,
  59. WEEKDAY = DATEPART(dw, @CurrentDate),
  60. WeekDayName = DATENAME(dw, @CurrentDate),
  61. WeekDayName_Short = UPPER(LEFT(DATENAME(dw, @CurrentDate), 3)),
  62. WeekDayName_FirstLetter = LEFT(DATENAME(dw, @CurrentDate), 1),
  63. [DOWInMonth] = DAY(@CurrentDate),
  64. [DayOfYear] = DATENAME(dy, @CurrentDate),
  65. [WeekOfMonth] = DATEPART(WEEK, @CurrentDate) - DATEPART(WEEK, DATEADD(MM, DATEDIFF(MM, 0, @CurrentDate), 0)) + 1,
  66. [WeekOfYear] = DATEPART(wk, @CurrentDate),
  67. [Month] = MONTH(@CurrentDate),
  68. [MonthName] = DATENAME(mm, @CurrentDate),
  69. [MonthName_Short] = UPPER(LEFT(DATENAME(mm, @CurrentDate), 3)),
  70. [MonthName_FirstLetter] = LEFT(DATENAME(mm, @CurrentDate), 1),
  71. [Quarter] = DATEPART(q, @CurrentDate),
  72. [QuarterName] = CASE
  73. WHEN DATENAME(qq, @CurrentDate) = 1
  74. THEN 'First'
  75. WHEN DATENAME(qq, @CurrentDate) = 2
  76. THEN 'second'
  77. WHEN DATENAME(qq, @CurrentDate) = 3
  78. THEN 'third'
  79. WHEN DATENAME(qq, @CurrentDate) = 4
  80. THEN 'fourth'
  81. END,
  82. [Year] = YEAR(@CurrentDate),
  83. [MMYYYY] = RIGHT('0' + CAST(MONTH(@CurrentDate) AS VARCHAR(2)), 2) + CAST(YEAR(@CurrentDate) AS VARCHAR(4)),
  84. [MonthYear] = CAST(YEAR(@CurrentDate) AS VARCHAR(4)) + UPPER(LEFT(DATENAME(mm, @CurrentDate), 3)),
  85. [IsWeekend] = CASE
  86. WHEN DATENAME(dw, @CurrentDate) = 'Sunday'
  87. OR DATENAME(dw, @CurrentDate) = 'Saturday'
  88. THEN 1
  89. ELSE 0
  90. END,
  91. [IsHoliday] = 0,
  92. [FirstDateofYear] = CAST(CAST(YEAR(@CurrentDate) AS VARCHAR(4)) + '-01-01' AS DATE),
  93. [LastDateofYear] = CAST(CAST(YEAR(@CurrentDate) AS VARCHAR(4)) + '-12-31' AS DATE),
  94. [FirstDateofQuater] = DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0),
  95. [LastDateofQuater] = DATEADD(dd, - 1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) + 1, 0)),
  96. [FirstDateofMonth] = CAST(CAST(YEAR(@CurrentDate) AS VARCHAR(4)) + '-' + CAST(MONTH(@CurrentDate) AS VARCHAR(2)) + '-01' AS DATE),
  97. [LastDateofMonth] = EOMONTH(@CurrentDate),
  98. [FirstDateofWeek] = DATEADD(dd, - (DATEPART(dw, @CurrentDate) - 1), @CurrentDate),
  99. [LastDateofWeek] = DATEADD(dd, 7 - (DATEPART(dw, @CurrentDate)), @CurrentDate)
  100.  
  101. SET @CurrentDate = DATEADD(DD, 1, @CurrentDate)
  102. END
  103.  
  104. --Update Holiday information
  105. UPDATE Calendar
  106. SET [IsHoliday] = 1,
  107. [HolidayName] = 'Christmas'
  108. WHERE [Month] = 12
  109. AND [DAY] = 25
  110.  
  111. UPDATE Calendar
  112. SET SpecialDays = 'Valentines Day'
  113. WHERE [Month] = 2
  114. AND [DAY] = 14
  115.  
  116. --Update current date information
  117. UPDATE Calendar
  118. SET CurrentYear = DATEDIFF(yy, GETDATE(), DATE),
  119. CurrentQuater = DATEDIFF(q, GETDATE(), DATE),
  120. CurrentMonth = DATEDIFF(m, GETDATE(), DATE),
  121. CurrentWeek = DATEDIFF(ww, GETDATE(), DATE),
  122. CurrentDay = DATEDIFF(dd, GETDATE(), DATE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement