Staram się:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
wygląda jak: 2010-03-04 00:00:00.000
Jednak to nie działa.
Czy ktoś może podać referencję dlaczego?
select *
from dbo.March2010 A
where A.Date >= Convert(datetime, '2010-04-01' )
W twoim zapytaniu, 2010-4-01
jest traktowane jako wyrażenie matematyczne, więc w istocie brzmi ono
select *
from dbo.March2010 A
where A.Date >= 2005;
(2010 minus 4 minus 1 to 2005
).
Konwersja do poprawnego datetime
i użycie pojedynczych cudzysłowów naprawi ten problem).
Technicznie rzecz biorąc, parser może pozwolić ci uciec z
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
wykona konwersję za ciebie, ale moim zdaniem jest to mniej czytelne niż jawna konwersja do DateTime
dla programisty obsługi technicznej, który przyjdzie po tobie.