• Something like this ?

    IF OBJECT_ID('TempDB..#test','U') IS NOT NULL

    drop table #test

    create table #test

    (studentid int, studentname varchar(20), startdate datetime, starttime datetime, endtime datetime

    )

    insert into #test

    select 1, 'john', '2012-01-03 00:00:00', '2012-01-03 07:00:00', '2012-01-03 09:00:00'

    select studentid, studentname, startdate, DATEADD(mi, (N-1)*15, starttime), DATEADD(mi, N*15, starttime)

    from #test cross join Tally

    where n >= 1 and n <= datediff(mi, starttime, endtime)/15