I needed to create a really simple time of day dimension the other day, so I thought I’d share my solution. My setup:
- SQL Server 2008
First off create the table. This is a basic table, and looks as follows:
And now the script to populate it.
DECLARE @Hour INT
DECLARE @Minute INT
SET @Hour = 0
SET @Minute = 0;
WHILE @Hour < 24
BEGIN
WHILE @Minute < 60
BEGIN
INSERT INTO DimTimeOfDay (Hour, Minute) VALUES (@Hour, @Minute)
SET @Minute = @Minute + 1
END
SET @Minute = 0;
SET @Hour = @Hour + 1
UPDATE DimTimeOfDay SET Name = RIGHT(‘00’ + CAST(Hour AS VARCHAR), 2) + ‘:’ + RIGHT(‘00’ + CAST(Minute AS VARCHAR), 2)
END

