Сравнение дат в Entity SQL
-
03-07-2019 - |
Вопрос
Каков правильный синтаксис eSQL для сравнения дат?
Эквивалентное выражение LINQ-to-Entities выглядело бы примерно так:
var lastYearsShipments = from p in MyDataServiceContext.Products
where p.ShipDate.Value.Year == DateTime.Now.Year - 1
select p;
Решение
Они говорят, что это приемлемо ответить на ваш собственный вопрос, итак , поехали ...
var predicate = string.Format(
"Year(it.ShipDate) == Year(cast('{0}' as System.DateTime)) -1",
System.DateTime.Now);
var lastYearsShipments =
myQuery.Products.Where(predicate); // myQuery is type ObjectQuery<T>
Смотрите также: документация msdn
Другие советы
string datetimeFormatter = "yyyy-MM-dd HH:mm";
var predicate = string.Format("Year(it.ShipDate) == Year(DATETIME'{0}')) -1", System.DateTime.Now.ToString(datetimeFormatter));
var lastYearsShipments = myQuery.Products.Where(predicate);
Не связан с StackOverflow