День года в HQL? - PullRequest
       26

День года в HQL?

4 голосов
/ 17 марта 2011

Есть ли способ извлечь день года (1-366) из даты в HQL?Является ли единственная возможность расширить нужные мне диалекты и явно зарегистрировать функции?Я вижу, что в диалектах HSQL и DB2 прописан день года, но с Oracle или SQL Server не повезло ...

Насколько я могу судить, единственными доступными стандартными функциями части даты являются year (), month (), day () и т. д., и если я что-то упустил, этого недостаточно для вычисления DOY ...

1 Ответ

2 голосов
/ 25 мая 2011

Насколько я могу судить, единственное решение - расширить существующие диалекты.Это оказалось довольно безболезненно:

public class SQLServerDialect extends org.hibernate.dialect.SQLServerDialect {    
  public SQLServerDialect() {
    registerFunction( "dayofyear", new SQLFunctionTemplate( Hibernate.INTEGER, "datepart(dayofyear, ?1)" ) );         
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...