2012-06-13 48 views
2

我希望從今天到365天后,按月計算用戶數。我正在使用Hibernate Criteria構建器API的groovy。任何簡單的方法來做這個分組?我們如何指定按月份分組日期字段的日期格式?如何創建按月份日期分組的標準字段+ Grails

現在,我有以下幾點:

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

      } 
     } 

的groupProperty(「sunsetdate」)組它根據日期,甚至包括在分組的時候..這樣的計數cacluated一個非常獨特日期&使計數1與源表相同的時間。 如何使用此方法在分組中指定日期格式?還是我必須使用HQL?

在此先感謝。

回答

2

你可以訪問這個here進一步的細節

創建三個新的數字每個字段周,月,年的 域類。這些字段不會映射到表中的列。 爲三個字段提供靜態映射。

 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') 
    } 
}