【问题标题】:Week(Date) Function in Grails/Hibernate CriteriaGrails/Hibernate Criteria 中的 Week(Date) 函数
【发布时间】:2011-05-02 08:17:59
【问题描述】:

我想问一下是否可以从域的日期属性中获取 week 数字 Grails 还是休眠标准

例如在 mysql 中是 WEEK(CURRENT_TIMESTAMP)

提前致谢

【问题讨论】:

标签: hibernate grails


【解决方案1】:

您必须获取日期属性、转换属性并提取一年中的星期几。例如

// fetch property from db
def test= Test.get(1)
// convert date and get week of year
println test.date.toCalendar().get(Calendar.WEEK_OF_YEAR)

【讨论】:

    【解决方案2】:

    如果您的数据库支持,您可以使用 Hibernate 的 week() 函数来做到这一点。

    例如,以下对实体进行分组(假定按周有一个名称为 dateEntered 的日期字段,并产生一个 List<Object[]>,其中对于列表中的每个 Object[],第一个元素是计数,第二个元素是周数。

    criteria.setProjection(Projections.projectionList()
                        .add(Projections.rowCount(), "parameterType")
                        .add(Projections.sqlGroupProjection(
                        "week({alias}.dateEntered) as week",
                        "week({alias}.dateEntered)",
                        new String[] {"week"},
                        new Type[] {Hibernate.INTEGER)))
                        .addOrder(Order.desc("parameterType"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      相关资源
      最近更新 更多