• This works with sql server 2008 too.

    create table #dates

    (

    RecordId int primary key clustered

    ,RecordDate datetime

    );

    insert #dates

    (RecordId, RecordDate)

    values (1, '2015-04-01 14:00'),

    (2, '2015-04-03 15:00'),

    (3, '2015-04-03 16:05'),

    (4, '2015-04-03 19:23'),

    (5, '2015-04-06 09:15'),

    (6, '2015-04-06 11:30'),

    (7, '2015-04-07 12:00'),

    (8, '2015-04-09 15:15');

    with S as (select *,row_number() over (partition by convert(date,RecordDate) order by RecordId ) as Num from #dates)

    select RecordId, RecordDate from S where num=1