Hibernate HQL中的一年中的哪一天?

Hibernate HQL中的一年中的哪一天?,hibernate,hql,Hibernate,Hql,有没有办法从HQL中的日期中提取一年中的某一天(1-366)?是扩展我需要的方言并显式注册函数的唯一选项吗?我看到HSQL和DB2方言已经注册了dayofyear,但Oracle或SQL Server却没有成功 据我所知,唯一可用的标准日期部分函数是year()、month()、day(),等等,除非我遗漏了一些东西,否则就我所知,这些函数不足以计算DOY…,唯一的解决方案是扩展现有的方言。结果证明这是相当无痛的: public class SQLServerDialect extends or

有没有办法从HQL中的日期中提取一年中的某一天(1-366)?是扩展我需要的方言并显式注册函数的唯一选项吗?我看到HSQL和DB2方言已经注册了dayofyear,但Oracle或SQL Server却没有成功


据我所知,唯一可用的标准日期部分函数是year()、month()、day(),等等,除非我遗漏了一些东西,否则就我所知,这些函数不足以计算DOY…

,唯一的解决方案是扩展现有的方言。结果证明这是相当无痛的:

public class SQLServerDialect extends org.hibernate.dialect.SQLServerDialect {    
  public SQLServerDialect() {
    registerFunction( "dayofyear", new SQLFunctionTemplate( Hibernate.INTEGER, "datepart(dayofyear, ?1)" ) );         
  }
}