如何使用时间戳列计算每天的不同值?

时间:2013-05-21 03:49:59

标签: php mysql sql timestamp unix-timestamp

我正在使用mysql,我无法考虑查询来计算特定日期范围内的用户/访问者数量。我目前正在使用的方式是使用php,我选择日期范围并在for循环中处理数据然后只计算它们。它实际上非常简单,但问题是这种方法不适用于几百万行的大数据。另一种方法是仅使用mysql计算不同的值,只使用timestamp列上的索引返回计数而不是实际数据。此外,将列转换为日期时间不是一种选择。我有什么想法可以实现这个目标吗?

以下是我需要的示例结果集:

date     | count
5-01-13     14
5-02-13     44
5-03-13     23
5-04-13     13

我的问题是我不知道如何按日对时间戳列进行分组。

2 个答案:

答案 0 :(得分:5)

应该这样做:

SELECT DATE('datetimecolumn'), COUNT(*) 
  FROM Table 
 GROUP BY DATE('datetimecolumn')

答案 1 :(得分:0)

您只需要这样做,而是添加group by子句:

SELECT myDate, count(distinct myField) as cnt
FROM myTable
WHERE myDate BETWEEN ? and ?
GROUP by myDate;

哪里有“?”是您在原始查询中使用的日期。