1. ホーム
  2. sql

[解決済み] SQL Serverで、ある日付より大きいすべての日付を照会するにはどうすればよいですか?

2022-03-22 04:02:39

質問

試しています。

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 minus 4 minus 1 is 2005 これを適切な datetime で、シングルクォートを使用すると、この問題は解決します)。

技術的には、パーサーは次のようにすることができるかもしれません。

select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

に変換してくれますが、私見では、明示的な変換よりも可読性が低くなります。 DateTime 後輩の保守プログラマーのために。