我尝试:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
a .日期如下:2010-03-04 00:00:00.000
然而,这并没有起作用。
谁能提供一个原因的参考?
我尝试:
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;
a .日期如下:2010-03-04 00:00:00.000
然而,这并没有起作用。
谁能提供一个原因的参考?
当前回答
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
首先将TexBox转换为日期时间,然后....在查询中使用该变量
其他回答
日期格式对我来说没有问题(Mydate的数据类型是datetime): Where Mydate>'10/25/2021'或Where Mydate>'2021-10-25' 但如果加上时间,以上答案就不适用了。 我是这样做的: where cast(Mydate as time)>'22:00:00' 如果您的查询需要一个日期,请添加日期,例如: where cast(Mydate as time)>'22:00:00' and Mydate='10/25/2021'
DateTime start1 = DateTime.Parse(txtDate.Text);
SELECT *
FROM dbo.March2010 A
WHERE A.Date >= start1;
首先将TexBox转换为日期时间,然后....在查询中使用该变量
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 - 1 = 2005 将其转换为适当的日期时间,并使用单引号将修复此问题。)
从技术上讲,解析器可能允许您使用
select *
from dbo.March2010 A
where A.Date >= '2010-04-01'
它将为您完成转换,但在我看来,它不如显式转换为DateTime的维护程序员的可读性。
综上所述,正确答案是:
select * from db where Date >= '20100401' (Format of date yyyymmdd)
这将避免任何其他语言系统的问题,并将使用索引。
尝试将日期封装到字符串中。
select *
from dbo.March2010 A
where A.Date >= '2010-04-01';