Date 如何创建按日期月份分组的条件字段+;圣杯

Date 如何创建按日期月份分组的条件字段+;圣杯,date,grails,groovy,group-by,hibernate-criteria,Date,Grails,Groovy,Group By,Hibernate Criteria,我想获得从今天到365天的每月分组用户数。我将groovy与Hibernate Criteria builder API一起使用。有什么简单的方法可以进行分组吗?如何指定日期格式,以便按月份对日期字段进行分组 现在我有以下几点: def con_cnt =Users.createCriteria().list { like('employeeid','c_%') between('sunsetdate', fromDate

我想获得从今天到365天的每月分组用户数。我将groovy与Hibernate Criteria builder API一起使用。有什么简单的方法可以进行分组吗?如何指定日期格式,以便按月份对日期字段进行分组

现在我有以下几点:

             def con_cnt =Users.createCriteria().list {
            like('employeeid','c_%')
            between('sunsetdate', fromDate, toDate)
            projections {
                count('employeeid')
                //groupProperty('sunsetdate')

            }
        }
groupProperty(“sunsetdate”)以日期为基础对其进行分组,甚至在分组中包含时间。。因此,计数被计算为一个非常独特的日期和时间,这使得计数1与源表相同。 我们如何使用这种方法在分组中指定日期格式?还是我必须使用HQL

提前感谢。

您可以访问此网站了解更多详细信息

在中为周、月和年创建三个新的数字字段 域类。这些字段不会映射到表中的列。 为这三个字段提供静态映射

      static mapping = {

    week formula('WEEK(DATE_OF_EXPENSE)')    //provide the exact column name of the date field
    month formula('MONTH(DATE_OF_EXPENSE)')
    year formula ('YEAR(DATE_OF_EXPENSE)')

    }
    def results = c.list {
  between("dateOfExpense", fromDate, toDate) 
  projections {
    switch(groupBy){
        case "week":
           groupProperty('year')
           groupProperty('month')
           groupProperty('week') 
        break;
        case "month"
           groupProperty('year')
           groupProperty('month')
        break;
        case "year":
           groupProperty('year')
        break;
    }        
    sum('amount')
  }
}