Ma püüan:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
näeb välja: 2010-03-04 00:00:00.000
See aga ei tööta.
Kas keegi oskab anda viite, miks?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
Teie päringus käsitletakse 2010-4-01
matemaatilise väljendusena, nii et sisuliselt on see järgmine
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 miinus 4 miinus 1 on 2005
).
Selle probleemi parandab selle teisendamine korralikuks datetime
ja ühekordsete jutumärkide kasutamine).
Tehniliselt võib parser lubada teil pääseda koos
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
ta teeb teisenduse teie eest, kuid minu arvates on see vähem loetav kui selgesõnaline teisendamine DateTime
-iks hoolduse programmeerija jaoks, kes tuleb pärast teid.