Вы не можете сравнивать даты таким образом.
При этом:
"SELECT VALUE userInfos FROM MyDBEntities.UserInformations AS userInfos
WHERE userInfos.BirthDate <= 10/09/1992"
10/09/1992
интерпретируется как значение Int
.
Попробуйте заключить в одинарные кавычки это значение, как показано ниже:
"SELECT VALUE userInfos FROM MyDBEntities.UserInformations AS userInfos
WHERE userInfos.BirthDate <= '10/09/1992'"
Возможно, вам придется вызывать функцию преобразования даты в базе данных (зависит от вашего поставщика базы данных), передавая ей эту строку даты.
Вот так:
"SELECT VALUE userInfos FROM MyDBEntities.UserInformations AS userInfos
WHERE userInfos.BirthDate <= DataBaseSpecificToDateFunction('10/09/1992')"
Проблема в том, что этот запрос отправляется в базу данных и является сервером базы данных, который его выполнит.Вот почему вам нужна функция преобразования даты, специфичная для базы данных.
Например: в Oracle у нас есть функция to_date для преобразования строки в datetime с использованием заданного шаблона:
to_date('1998/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam')
В SQL Server у нас есть функция convert
, как в:
convert(datetime, '2016-10-23 20:44:11',20) -- yyyy-mm-dd hh:mm:ss(24h)
Больше примеров здесь .