without una two restar fecha dias dates .net linq

.net - una - linq compare two dates without time



¿Cómo comparar fechas en LINQ? (3)

Quiero verificar si una fecha determinada es más de un mes anterior a la fecha de hoy usando LINQ.

¿Cuál es la sintaxis para esto?

Gracias por adelantado.


Supongo que estás hablando en la cláusula where. Es básicamente de la misma manera que compararía dos objetos DateTime en otro lugar.

using (DataContext context = new DataContext()) { var query = from t in context.table where t.CreateDate.Date < DateTime.Today.AddMonths(-1) select t; }


Solo para agregar, en LINQ To Entities tienes que comparar con una variable. Ejemplo:

DateTime lastMonth = DateTime.Today.AddMonths(-1); using (var db = new MyEntities()) { var query = from s in db.ViewOrTable orderby s.ColName where (s.StartDate > lastMonth) select s; _dsResults = query.ToList(); }


Si no quieres que tu código se lance

LINQ to Entities does not recognize the method ''System.DateTime AddYears(Int32)'' method, and this method cannot be translated into a store expression.

Sugeriría usar DbFunctions.AddYears. Además, si le preocupan solo las fechas y no los horarios, podría usar DbFunctions.TruncateTime

Algo como esto-

DbFunctions.TruncateTime(x.date) == DbFunctions.TruncateTime(DbFunctions.AddYears(DateTime.Today, 1))