如果您有数字表(如果没有,请单击链接以创建一个表)…
create table test( startTime time, endTime time)insert into testselect '11:00', '14:00'select dateadd(hh, n.n, t.startTime) as timesfrom test t inner join Numbers n -- assuming your numbers start at 1 rather than 0 on n.n-1 <= datediff(hh, t.startTime, t.endTime)
如果这是专门的,则可以创建仅包含24个值的小时表。
create table HoursInADay( [hours] time not null, constraint PK_HoursInADay primary key ([hours]))-- insertinsert into HoursInADay select '1:00'insert into HoursInADay select '2:00'insert into HoursInADay select '3:00'insert into HoursInADay select '4:00'insert into HoursInADay select '5:00'insert into HoursInADay select '6:00'insert into HoursInADay select '7:00'...select h.[hours]from test t inner join HoursInADay h on h.[hours] between t.startTime and t.endTime



