2014-07-26 42 views
1

在数据库中的[日期]字段为DateTime,它把数据以这种格式enter image description here。问题在于调试模式。当我发送日期(enter image description here)到查询。该查询没有找到任何记录。我认为这是因为小时的差异。于是,我就DateTime.Now.Date,但它仍然无法正常工作(该时间部分仍然存在)选择查询没有找到现有记录

SELECT [Employee_Id] 
FROM [Scheduling_Employee].[dbo].[Date] 
where [Date][email protected]; 

回答

2

更改查询来搜索针对datetime“只有日期和发送日期;

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

(这样仍然可优化搜索)

0

试试这个或类似亚历ķCAST提示:

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

自[日期]日期时间,它试图比较整个价值(不仅仅是日期)。

如果你想按日期来过滤,而不是日期时间,然后换你的哪里是这样的:

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

也可以通过日期时间的间隔,并检查您的列在其中。

where [Date]>[email protected] and [Date]<@upperBound; 

对于今天的记录下界间隔将是DateTime.Now.Date,上限DateTime.Now.Date.AddDays(1)。这样,如果索引编制为[Date],您将从中受益。