从日期列中选择值,而不考虑SQL中的秒值

时间:2013-06-14 07:23:10

标签: sql sql-server-2008

我有一个SQL表,其DATETIME column(EndTime)。从我的代码我传递一个日期,我想得到EndTime等于该日期的日期。我用了

SELECT MAX([EndTime]) FROM [dbo].[Table]  where [EndTime]=@date

我想要的是如果我将2013-06-14 10:35传递给查询,它应该返回此时的所有记录。但由于表中的秒值,它仅返回具有2013-06-14 10:35:000的值。如何忽略列中的秒部分?

2 个答案:

答案 0 :(得分:1)

为什么不尝试类似

的内容
SELECT MAX([EndTime]) 
FROM [dbo].[Table]  
where [EndTime]>=@date
AND [EndTime]<DATEADD(minute,1,@date)

或者甚至

SELECT MAX([EndTime]) 
FROM [dbo].[Table]  
where convert(varchar(16),EndTime,120) = @date

答案 1 :(得分:0)

您也可以尝试以下删除秒数

SELECT MAX([EndTime]) 
FROM [dbo].[Table]  
where   DATEadd(ss,-datepart(ss,EndTime),EndTime) = @date