Search code examples
entity-framework.net-3.5entity-sql

Comparing dates in Entity SQL


What is the correct eSQL syntax to compare dates?

The equivalent LINQ-to-Entities expression would look something like this:

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

Solution

  • They say it's acceptable to answer your own question, so here goes ...

    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>
    

    See also: msdn documentation