select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Във вашата заявка 2010-4-01
се третира като математически израз, така че по същество се чете
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 is 2005
Преобразуването му в правилен datetime
, и използването на единични кавички ще реши този проблем.)
Технически, анализаторът може да ви позволи да се измъкнете с
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
той ще извърши преобразуването вместо вас, но според мен е по-малко четим от изричното преобразуване в DateTime
за програмиста за поддръжка, който ще дойде след вас.