如何在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到查询中