select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Nella tua richiesta, 2010-4-01
è trattata come un'espressione matematica, quindi in sostanza si legge
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 is 2005
Convertirlo in un corretto datetime
e l'utilizzo di virgolette singole risolverà questo problema.)
Tecnicamente, il parser potrebbe permetterti di farla franca
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
eseguirà la conversione per te, ma secondo me è meno leggibile rispetto alla conversione esplicita in un DateTime
per il programmatore di manutenzione che verrà dopo di te.