2017-09-01 28 views
0

所以我有一些列包含日期,時間像2017-09-01 05:24:03.090如何只能選擇其中日期時間是最新的

,我想只得到所有從本日的列像2017-09-01

我已經與

where item.DateTimeModified = CONVERT (date, GETDATE()); 

嘗試,但沒有給我任何東西所以究竟如何做這

+1

您也可以轉換'DateTimeModified'。 –

回答

2

您需要轉換兩個日期時間值。
否則將整個日期時間值ìtem.DateModified與當前日期值進行比較。

WHERE CONVERT(date, item.DateTimeModified) = CONVERT(date, GETDATE()); 
2
where CONVERT(NVARCHAR,item.DateTimeModified,105) = CONVERT (NVARCHAR, GETDATE(),105); 
0

您可以先對修改日期進行標準化,然後與規範化的當前日期進行比較。爲了規範化首先將日期轉換爲浮點數,然後使用floor,然後將其轉換爲datetime。

where cast(floor(cast(item.DateTimeModified as float)) as smalldatetime) = cast(floor(cast(GETDATE() as float)) as smalldatetime); 
0

這將做到: -

CAST(item.DateTimeModified AS DATE) = CAST(GETDATE() AS DATE) 
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 ... 
相關問題