所以我有一些列包含日期,時間像2017-09-01 05:24:03.090
如何只能選擇其中日期時間是最新的
,我想只得到所有從本日的列像2017-09-01
我已經與
where item.DateTimeModified = CONVERT (date, GETDATE());
嘗試,但沒有給我任何東西所以究竟如何做這
所以我有一些列包含日期,時間像2017-09-01 05:24:03.090
如何只能選擇其中日期時間是最新的
,我想只得到所有從本日的列像2017-09-01
我已經與
where item.DateTimeModified = CONVERT (date, GETDATE());
嘗試,但沒有給我任何東西所以究竟如何做這
您需要轉換兩個日期時間值。
否則將整個日期時間值ìtem.DateModified
與當前日期值進行比較。
WHERE CONVERT(date, item.DateTimeModified) = CONVERT(date, GETDATE());
where CONVERT(NVARCHAR,item.DateTimeModified,105) = CONVERT (NVARCHAR, GETDATE(),105);
您可以先對修改日期進行標準化,然後與規範化的當前日期進行比較。爲了規範化首先將日期轉換爲浮點數,然後使用floor,然後將其轉換爲datetime。
where cast(floor(cast(item.DateTimeModified as float)) as smalldatetime) = cast(floor(cast(GETDATE() as float)) as smalldatetime);
這將做到: -
CAST(item.DateTimeModified AS DATE) = CAST(GETDATE() AS DATE)
一個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 ...
您也可以轉換'DateTimeModified'。 –