@ DateNow является DateTime, поэтому также будет иметь Компонент даты
select right(left(convert(nvarchar, @DateNow, 121), 16), 5)
даст вам только временную составляющую для вставки в ваш столбец Nvarchar
while(@i<1440)
begin
set @DateNow=DATEADD(minute, 1, @DateNow)
insert into #temp ([count], [Time]) values(0, right(left(convert(nvarchar, @DateNow, 121), 16), 5))
set @i=@i+1
end
SELECT [count], [Time] from #temp
drop table #temp
А что касается shits'n'giggles, вот как это сделать, не полагаясь на объект DateTime.
CREATE TABLE #temp (
[count] int,
[Time] nvarchar(50)
)
DECLARE @hour int, @min int, @i int
SELECT @hour = 0, @min = 0, @i = 1
WHILE (@hour < 24)
BEGIN
WHILE (@min < 60)
BEGIN
INSERT INTO #temp ([count], [time])
VALUES (@i, REPLACE(STR(@hour, 2, 0), ' ', 0) + ':' + REPLACE(STR(@min, 2, 0), ' ', 0))
set @min = @min + 1
set @i=@i+1
END
set @min = 0
set @hour = @hour + 1
END
SELECT * FROM #Temp