Try this:
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
2010-4-01 is considered as a mathematical expression in your query, thus in essence, it reads
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 is 2005 Converting it to a proper datetime, and using single quotes will fix this issue.)
Technically, the parser might allow you to get away with:
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
it will do the conversion for you, but in my opinion, it is less readable than explicitly converting to a DateTime for the maintenance programmer that will come after you.