select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Em sua consulta,
2010-4-01
é tratado como uma expressão matemática, então, em essência, lê-se select *
from dbo.March2010 A
where A.Date >= 2005;
(
2010 minus 4 minus 1 is 2005
Convertendo para um datetime
adequado , e usar aspas simples corrigirá esse problema.) Tecnicamente, o analisador pode permitir que você
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
ele fará a conversão para você, mas na minha opinião é menos legível do que converter explicitamente para um
DateTime
para o programador de manutenção que virá depois de você.