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
に明示的に変換するよりも読みにくくなります。 あなたの後に来るメンテナンスプログラマーのために。