あなたはそれを3つの部分に分けて行います。最初のピースは最初の1時間、60から分の値を引いたもの、2番目のピースはstart+1からendまでのすべての時間のtime=60、3番目のピースはendminutesです。
次に、abstractChaosが行ったように、それらを一時テーブルに挿入します。
AbstractChaosのような一時テーブルに挿入します。
DECLARE @STARTDATE AS SMALLDATETIME
DECLARE @ENDDATE AS SMALLDATETIME
DECLARE @TIME AS TABLE(id INT IDENTITY(1,1), [HOUR] INT, [TIME] INT)
SET @STARTDATE = '2012-11-21 11:03:00'
SET @ENDDATE = '2012-11-21 13:04:00'
INSERT INTO @TIME (HOUR,TIME)
VALUES (datepart(HOUR,@startdate) ,60 - datepart(MINUTE,@startdate) )
WHILE @STARTDATE < @ENDDATE
BEGIN
SELECT @STARTDATE = DATEADD(MINUTE,60,@STARTDATE)
INSERT INTO @TIME (HOUR,TIME)
VALUES(datepart(HOUR,@STARTDATE) , 60)
END
INSERT INTO @TIME (HOUR,TIME)
VALUES(datepart(HOUR,@enddate) , datepart(MINUTE,@startdate))