select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
I din fråga, 2010-4-01
behandlas som ett matematiskt uttryck, så i huvudsak lyder det
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 is 2005
Konverterar den till en korrekt datetime
, och att använda enstaka citattecken kommer att lösa problemet.)
Tekniskt sett kan parsern tillåta dig att komma undan med
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
den kommer att göra omvandlingen åt dig, men enligt min mening är den mindre läsbar än att explicit konvertera till en DateTime
för underhållsprogrammeraren som kommer efter dig.