Сравнение значений DateTime в EntitySQL при запуске со строки запроса
Я использую QueryBuilder
следующим образом:
var queryString = String.Format(
"SELECT VALUE e FROM Entity AS e WHERE e.EndDate {0} {1} ",
operator,
DateTime.Today.AddYears(1).ToString("d", DateTimeFormatInfo.InvariantInfo)
);
ObjectQuery<Entity> query = new ObjectQuery<Entity>(queryString, Context);
Обратите внимание, что я чрезвычайно упростил этот пример и что моя цель - создать запрос в виде строки перед созданием QueryBuilder
пример. (Пока это возможно)
Я уже попробовал следующее
...DateTime.Today.AddYears(1)...
...DateTime.Today.AddYears(1).ToString()...
...DateTime.Today.AddYears(1).ToString("yyy\MM\dd")...
все это приводит к исключению, которое говорит, что я не могу сравнивать DateTime со String или с Int32.
Я начинаю спрашивать меня, возможно ли это вообще при таком подходе...
1 ответ
Решение
В Entity SQL литералы DateTime должны быть выражены в следующем формате:
DATETIME'2012-02-02 16:26'
где обе части даты и времени являются обязательными. Например:
"SELECT VALUE e FROM Entity AS e WHERE e.EndDate > DATETIME'2012-02-02 16:26'"