所以我有一些列包含日期,时间如2017-09-01 05:24:03.090
我希望只获取当天的所有列,例如2017-09-01
我一直在尝试
where item.DateTimeModified = CONVERT (date, GETDATE ());
但那并没有给我什么,所以我该怎么做呢
答案 0 :(得分:2)
where CONVERT(NVARCHAR,item.DateTimeModified,105) = CONVERT (NVARCHAR, GETDATE (),105);
答案 1 :(得分:2)
您需要转换两个日期时间值。
否则将ìtem.DateModified
的整个日期时间值与当前日期值进行比较。
WHERE CONVERT(date, item.DateTimeModified) = CONVERT(date, GETDATE());
答案 2 :(得分:0)
您可以先修改修改日期,然后与规范化的当前日期进行比较。对于规范化,首先将日期转换为float,然后使用floor,然后将其转换为datetime。
where cast(floor(cast(item.DateTimeModified as float)) as smalldatetime) = cast(floor(cast(GETDATE () as float)) as smalldatetime);
答案 3 :(得分:0)
这样做: -
CAST(item.DateTimeModified AS DATE) = CAST(GETDATE() AS DATE)
答案 4 :(得分:0)
SARGABLE查询将是:
declare @Today as Date = Cast( GetDate() as Date ), @Tomorrow as Date;
set @Tomorrow = DateAdd( day, 1, @Today );
... where item.DateTimeModified >= @Today and item.DateTimeModified < @Tomorrow ...