Populating date/time tables
- August 2nd, 2011
- Posted in Uncategorized
- By Germán Medina
- Write comment
This code will populate a date/time table for a cube or any other purpose in SQL Server.
declare @start datetime, @end datetime, @date datetime, @hour int select @start = '2011-08-01 00:00', @end = '2013-01-01 00:00' set @date = @start while @date < @end begin set @hour = 0 while @hour < 24 begin insert into [date]([id], yeardate, monthdate, daydate, hourdate,[year], [month], [day], [hour]) values( ltrim(datepart(year, @date)) + '-' + ltrim(datepart(month, @date)) + '-' + ltrim(datepart(day, @date)) + ' ' + str(@hour) + ':00', ltrim(datepart(year, @date)) + '-01-01 00:00', ltrim(datepart(year, @date)) + '-' + ltrim(datepart(month, @date)) + '-01 00:00', ltrim(datepart(year, @date)) + '-' + ltrim(datepart(month, @date)) + '-' + ltrim(datepart(day, @date)) + ' 00:00', ltrim(datepart(year, @date)) + '-' + ltrim(datepart(month, @date)) + '-' + ltrim(datepart(day, @date)) + ' ' + str(@hour) + ':00', datepart(year, @date), datepart(month, @date), datepart(day, @date), @hour) set @hour = @hour + 1; end set @date = dateadd(day, 1, @date) end
No comments yet.