Отдельное поле даты и времени без времени в HQL

#nhibernate #hql

#nhibernate #hql

Вопрос:

Я пытаюсь выбрать отдельное поле даты и времени в HQL.

 select distinct CreatedDate from ClaimFile order by CreatedDate DESC
  

Любая идея, как я могу получить отдельные даты без времени. прямо сейчас оно не может быть различимо по времени.

Спасибо

Ответ №1:

Я могу придумать только пару вариантов:

  1. Зарегистрируйте a CustomSQLFunction на своем диалекте и используйте его для форматирования даты и времени в дату.
  2. Создайте ComputedColumn (sql server), который просто удаляет время. Добавьте его в сопоставление как доступное только для чтения и используйте это.
  3. Просто вернитесь к обычному SQL, поскольку вам, похоже, нужен только список дат, а не объектов.
  4. Используйте 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 приведет к сериализации запроса и значительно снизит производительность запроса.