C# 选择查询找不到现有记录

C# 选择查询找不到现有记录,c#,datetime,C#,Datetime,数据库中的[Date]字段是DateTime,它以这种格式放置数据。问题出在调试模式下。当我将date()发送到查询时。查询未找到任何记录。我想这是因为时间的不同。所以我尝试了DateTime.Now.Date,但它仍然不起作用(小时部分仍然存在) 试试这个,或者像Alex K建议的那样施展: WHERE DATEPART(year,[DATE]) = DATEPART(year,@dateTime) AND DATEPART(dy,[DATE]) = DATEPART(dy,@dateT

数据库中的[Date]字段是
DateTime
,它以这种格式放置数据。问题出在调试模式下。当我将date()发送到查询时。查询未找到任何记录。我想这是因为时间的不同。所以我尝试了
DateTime.Now.Date
,但它仍然不起作用(小时部分仍然存在)


试试这个,或者像Alex K建议的那样施展:

WHERE DATEPART(year,[DATE]) = DATEPART(year,@dateTime) 
  AND DATEPART(dy,[DATE]) = DATEPART(dy,@dateTime)

更改查询以搜索
日期时间
的日期,并仅发送日期

...
where cast([date] as date) = @date

(这种方法仍然适用)

因为[Date]是一个datetime,所以它试图比较整个值(而不仅仅是日期)

如果您试图按日期而不是日期时间进行筛选,请将where更改为以下内容:

where DATEPART(YEAR, [Date])=DATEPART(YEAR, @dateTime) 
AND DATEPART(MONTH, [Date])=DATEPART(MONTH, @dateTime) 
AND DATEPART(DAY, [Date])=DATEPART(DAY, @dateTime)

还可以传递日期时间间隔,并检查列是否在其中

where [Date]>=@lowerBound and [Date]<@upperBound;
其中[Date]>=@lowerBound和[Date]
where [Date]>=@lowerBound and [Date]<@upperBound;