Сравнение дат в Entity SQL - PullRequest
0 голосов
/ 03 марта 2009

Какой правильный синтаксис eSQL для сравнения дат?

Эквивалентное выражение LINQ-to-Entities будет выглядеть примерно так:

var lastYearsShipments = from p in MyDataServiceContext.Products
                         where p.ShipDate.Value.Year == DateTime.Now.Year - 1
                         select p;

Ответы [ 2 ]

2 голосов
/ 03 марта 2009

Они говорят, что приемлемо ответить на ваш собственный вопрос , так что вот так ...

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

0 голосов
/ 25 марта 2010
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); 
...