Linq where clause compare only date value without time value

Frank Myat Thu picture Frank Myat Thu · Nov 22, 2012 · Viewed 122.7k times · Source
var _My_ResetSet_Array = _DB
    .tbl_MyTable
    .Where(x => x.Active == true
        && x.DateTimeValueColumn <= DateTime.Now)
    .Select(x => x);

Upper query is working correct.
But I want to check only date value only.
But upper query check date + time value.

In traditional mssql, I could write query like below.

SELECT * FROM dbo.tbl_MyTable
WHERE 
CAST(CONVERT(CHAR(10), DateTimeValueColumn, 102) AS DATE) <= 
            CAST(CONVERT(CHAR(10),GETDATE(),102) AS DATE)
AND
Active = 1

So could anyone give me suggestion how could I check only date value in Linq.

Answer

Johann Blais picture Johann Blais · Nov 12, 2013

There is also EntityFunctions.TruncateTime or DbFunctions.TruncateTime in EF 6.0