#nhibernate #hql
#nhibernate #hql
Вопрос:
Я пытаюсь выбрать отдельное поле даты и времени в HQL.
select distinct CreatedDate from ClaimFile order by CreatedDate DESC
Любая идея, как я могу получить отдельные даты без времени. прямо сейчас оно не может быть различимо по времени.
Спасибо
Ответ №1:
Я могу придумать только пару вариантов:
- Зарегистрируйте a
CustomSQLFunction
на своем диалекте и используйте его для форматирования даты и времени в дату. - Создайте ComputedColumn (sql server), который просто удаляет время. Добавьте его в сопоставление как доступное только для чтения и используйте это.
- Просто вернитесь к обычному SQL, поскольку вам, похоже, нужен только список дат, а не объектов.
- Используйте a
formula
вproperty
сопоставлении. Элемент сопоставления свойств объяснен
<property name="CreateDate" formula="cast(convert(varchar(10),CreateDate,103) as datetime)" />
.
Комментарии:
1. Не могли бы вы прислать мне пример, например, как я могу зарегистрировать функцию преобразования sql на диалекте
2.Вот несколько ссылок, которые помогут вам начать: ayende.com/blog/1720/using-sql-functions-in-nhibernate nhforge.org/blogs/nhibernate/archive/2009/03/13 /…
3. Также имейте в виду, что использование функций SQL приведет к сериализации запроса и значительно снизит производительность запроса.