SQL Serverで特定の日付よりも大きいすべての日付を検索するにはどうすればよいですか?

努力しています。

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に変換するよりも読みにくくなります。

解説 (4)

日付を文字列で囲んでみてください。

 select * 
 from dbo.March2010 A
 where A.Date >= '2010-04-01';
解説 (1)
DateTime start1 = DateTime.Parse(txtDate.Text);

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= start1;

まず、TexBox を Datetime に変換し、....use その変数を Query に使用します。

解説 (0)