如何在SQL Server中查询大于特定date的所有date?

我尝试着:

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被视为一个mathexpression式,所以在本质上它被读取

 select * from dbo.March2010 A where A.Date >= 2005; 

2010 minus 4 minus 1 is 2005转换为适当的datetime ,使用单引号将解决这个问题。)

从技术上讲,parsing器可能会让你摆脱困境

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

它会为你做转换,但是在我看来,它比明确转换为维护程序员的DateTime时间更不可读。

尝试把你的date放入一个string中。

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

我们可以像下面一样使用

 SELECT * FROM dbo.March2010 A WHERE CAST(A.Date AS Date) >= '2017-03-22'; SELECT * FROM dbo.March2010 A WHERE CAST(A.Date AS Datetime) >= '2017-03-22 06:49:53.840'; 
 DateTime start1 = DateTime.Parse(txtDate.Text); SELECT * FROM dbo.March2010 A WHERE A.Date >= start1; 

首先将TexBox转换成date时间然后….使用该variables到查询中