MySQL日期范围SELECT + JOIN查询使用CURRENT_TIMESTAMP列

时间:2010-10-12 17:15:20

标签: sql mysql database datetime

我正在使用此查询:

SELECT p.id, count(clicks.ip)
FROM `p`
LEFT JOIN c clicks ON p.id = clicks.pid
WHERE clicks.ip = '111.222.333.444'

要从表格“c”中选择点击次数,即“pid”=“p.id”。查询似乎工作正常,但现在我想将该查询与日期范围一起使用。 “c”表有一列“time”,它使用MySQL CURRENT_TIMESTAMP数据类型(YYYY-MM-DD HH:MM:SS)。 如何使用该列将我的查询与日期范围一起使用?

我希望能够从特定日期选择count(clicks.ip),并按小时对结果进行分组(但这是针对不同的查询)。

1 个答案:

答案 0 :(得分:0)

使用:

   SELECT p.id, 
          COUNT(clicks.ip)
     FROM `p`
LEFT JOIN c clicks ON clicks.pid = p.id 
                  AND clicks.ip = '111.222.333.444'
                  AND clicks.time BETWEEN DATE_SUB(NOW(), INTERVAL 1 DAY)
                                      AND NOW()

我提供了一个示例,用于计算昨天(DATE_SUB(NOW(), INTERVAL 1 DAY))和今天(NOW())之间发生的点击次数。请注意,BETWEEN具有包容性。