使用grails每天的记录数

时间:2013-01-24 11:53:28

标签: mysql hibernate grails gorm

我有一个带有mysql数据库的 grails 应用程序作为数据源。 mysql数据库由第三方创建和维护。其中一个表'visitinfo'包含2列,包含'userid''logindatetime'

userid的类型为TEXT,logindatetime的类型为“datetime”。

为了访问上面的表'visitinfo',我创建了一个域类'VisitInfo'并将其映射到mysql数据库表,通过该表我的grails应用程序可以轻松存储以及从数据库中检索数据。

在其中一个页面上,我需要显示过去30天的访客信息。所以基本上我正在寻找一个解决方案,以获得过去30天每天的访客数量。像这样:

21-Jan-2012 ------ 36
22-Jan-2012 ------ 85
23-Jan-2012 ------ 115
24-Jan-2012 ------ 236
etc.

另请注意,如果用户ID 'williamp'在某一天有2个条目,则应将其计为2.因此,我不会注意用户的唯一性。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

我建议按照hql查询来匹配您的要求

VisitInfo.executeQuery("select logindatetime, count(*) from VisitInfo group by logindatetime") 

答案 1 :(得分:0)

我对grails一无所知。获取所需结果的MySQL查询如下:

SELECT DATE_FORMAT(logindatetime,'%d-%m-%Y') dt
     , COUNT(*) total
  FROM visitinfo
 GROUP 
    BY dt;

答案 2 :(得分:0)

您想使用countBy gorm方法。

numLogins=VisitInfo.countByReleaseDateBetween(startOfDay,endOfDay)

这需要在一个循环中,为过去30天的每一天计算两个日期对象。 startOfDay需要时间值00:00:00:00,endOfDay需要时间值23:59:00:00