Jeg prøver:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
ser ut som: 2010-03-04 00:00:00.000
Dette fungerer imidlertid ikke.
Kan noen gi en referanse til hvorfor?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
I spørringen din behandles 2010-4-01
som et matematisk uttrykk, så i hovedsak lyder det slik
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 er 2005
).
Hvis du konverterer det til en riktig datetime
og bruker enkle anførselstegn, løser du dette problemet).
Teknisk sett kan parseren kanskje tillate deg å slippe unna med
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
det vil gjøre konverteringen for deg, men etter min mening er det mindre lesbart enn å eksplisitt konvertere til en DateTime
for vedlikeholdsprogrammereren som kommer etter deg.