SQL Server で特定の日付より大きい日付をすべてクエリするにはどうすればよいですか? 質問する

SQL Server で特定の日付より大きい日付をすべてクエリするにはどうすればよいですか? 質問する

私はしようとしています:

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;

A.Date次のようになります:2010-03-04 00:00:00.000

しかし、これは機能しません。

理由について参考になる資料を誰か提供できますか?

ベストアンサー1

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

おすすめ記事