使用DATE_TRUNC功能

时间:2018-08-04 10:47:52

标签: sorting date

DATE_TRUNC功能是否可以解决过去30天内每天计算事件天数的问题?

1 个答案:

答案 0 :(得分:0)

是的-假设您使用的是Postgres-您可以使用该功能提取日期部分,然后对每个特定的日期进行分组和计数。

在下面的示例中,我有一个带有tb_registration时间戳列的表date,并且使用DATE_TRUNC函数按日,月,年分组。在此示例中,我还将date列应用了一定天数的过滤器。

select date_part('day', DATE_TRUNC('day', date)) "day", 
  date_part('month', DATE_TRUNC('month', date)) "month", 
  date_part('year', DATE_TRUNC('year', date)), count(*) "year"
    from tb_registration where date > NOW() - INTERVAL '600 days'
      group by DATE_TRUNC('day', date), 
        DATE_TRUNC('month', date), 
        DATE_TRUNC('year', date) order by 3 desc, 2 desc, 1 desc

此查询产生以下结果:

14;4;2017;1
11;4;2017;90
10;4;2017;99
9;4;2017;60
8;4;2017;66
7;4;2017;83
6;4;2017;87
5;4;2017;76
4;4;2017;91
3;4;2017;110
2;4;2017;52
1;4;2017;46
31;3;2017;66

这些列在哪里:

  1. 计数