获取过去48小时的数据 - MySQL

时间:2017-07-10 09:47:02

标签: mysql sql mysql-workbench

我有一个SQL查询,我需要从过去48小时开始计算。

sql查询

SELECT count(*), created
AS countMeta
FROM mimesi_indexer.meta_served_clips
GROUP BY created > DATE(NOW() - INTERVAL 48 HOUR)

我尝试了这个查询,但它不起作用,有人可以告诉我如何解决它或如何从头开始吗?

由于

2 个答案:

答案 0 :(得分:1)

如果created是时间戳字段,并且您想要计算过去48小时内创建的所有行,则应将查询编写为:

select
  count(*) AS countMeta
from
  mimesi_indexer.meta_served_clips
where
  created > NOW() - INTERVAL 48 HOUR

如果您想显示过去48小时内每小时的计数,可以采用以下方法:

select
  date_format(created, '%Y/%m/%d %h') as day_hour_created,
  count(*)
from
  mimesi_indexer.meta_served_clips
where
  created > NOW() - INTERVAL 48 HOUR
group by
  date_format(created, '%Y/%m/%d %h')

使用字符串函数date_format,我们只能从created字段中提取日期和小时信息,并按此字符串分组。那么你可能还想改变条件

created > NOW() - INTERVAL 48 HOUR

到此:

created > date_format(now()- interval 48 hour, '%Y/%m/%d %h')

跳过分钟和第二部分,以使第一个小时完成。

答案 1 :(得分:0)

你应该使用mysql DATE_SUB()代替DATE()函数来获取最近48小时的记录

SELECT count(*), created
AS countMeta
FROM mimesi_indexer.meta_served_clips
GROUP BY created > DATE_SUB(now(), INTERVAL 48 HOUR)