在数据库中的[日期]字段为DateTime
,它把数据以这种格式。问题在于调试模式。当我发送日期()到查询。该查询没有找到任何记录。我认为这是因为小时的差异。于是,我就DateTime.Now.Date
,但它仍然无法正常工作(该时间部分仍然存在)选择查询没有找到现有记录
SELECT [Employee_Id]
FROM [Scheduling_Employee].[dbo].[Date]
where [Date][email protected];
在数据库中的[日期]字段为DateTime
,它把数据以这种格式。问题在于调试模式。当我发送日期()到查询。该查询没有找到任何记录。我认为这是因为小时的差异。于是,我就DateTime.Now.Date
,但它仍然无法正常工作(该时间部分仍然存在)选择查询没有找到现有记录
SELECT [Employee_Id]
FROM [Scheduling_Employee].[dbo].[Date]
where [Date][email protected];
更改查询来搜索针对datetime
“只有日期和发送日期;
...
where cast([date] as date) = @date
(这样仍然可优化搜索)
试试这个或类似亚历ķCAST提示:
WHERE DATEPART(year,[DATE]) = DATEPART(year,@dateTime)
AND DATEPART(dy,[DATE]) = DATEPART(dy,@dateTime)
自[日期]日期时间,它试图比较整个价值(不仅仅是日期)。
如果你想按日期来过滤,而不是日期时间,然后换你的哪里是这样的:
where DATEPART(YEAR, [Date])=DATEPART(YEAR, @dateTime)
AND DATEPART(MONTH, [Date])=DATEPART(MONTH, @dateTime)
AND DATEPART(DAY, [Date])=DATEPART(DAY, @dateTime)
也可以通过日期时间的间隔,并检查您的列在其中。
where [Date]>[email protected] and [Date]<@upperBound;
对于今天的记录下界间隔将是DateTime.Now.Date
,上限DateTime.Now.Date.AddDays(1)
。这样,如果索引编制为[Date]
,您将从中受益。