努力しています。
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
A.Date
は次のようになります。2010-03-04 00:00:00.000
しかし、これではうまくいきません。
どなたか、その理由について参考になる情報を教えてください。
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から4を引いたものが2005
)
これを適切な datetime
に変換し、シングルクォートを使用すれば、この問題は解決します)。
技術的には、パーサーは次のようにしてもよいとしています。
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
で済ませることができるかもしれません。しかし、私の意見では、後から来る保守プログラマーのために明示的にDateTime
に変換するよりも読みにくくなります。