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