HQL中的一年中的某一天?

时间:2011-03-17 07:39:44

标签: hibernate hql

有没有办法从HQL中提取日期(1-366)?是扩展我需要的方言并明确注册函数的唯一选择吗?我看到HSQL和DB2方言已经注册了dayofyear,但Oracle或SQL Server没有运气...

据我所知,唯一可用的标准日期部分功能是年(),月(),日()等,除非我遗漏了这些不足以计算DOY ...

1 个答案:

答案 0 :(得分:2)

据我所知,唯一的解决方案是扩展现有的方言。事实证明这是相当无痛的:

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