在SQL(postgresql)中如何基于“没有时区的时间戳”列进行分组?

时间:2015-01-20 06:27:07

标签: postgresql

我正在尝试编写一些查询,根据 postgresql 中的每个月对内容进行分组。

假设我们有一个表“犯罪”,其中包含2列“活动日期”(没有时区的时间戳)和“zipcode”(字符变化(5)),如何查询给定邮政编码的每个月的犯罪数量?

例如: 表“罪行”:

activity date               zipcode
2014-11-22 00:52:00           12345
2014-10-22 00:52:00           12345
2014-10-24 00:52:00           12345
2014-12-22 00:52:00           54321

输入:给定邮编“12345”

输出:return

month        count
2014-10        2
2014-11        1

2 个答案:

答案 0 :(得分:5)

尝试:

select
    extract(year from activity_date) as year,
    to_char(activity_date, 'Mon') as month,
    count(*) as count
from
    crimes
group by
    1,extract(month from activity_date);

答案 1 :(得分:0)

如何从PostgreSQL的时间戳(带/不带时区)中获取月份?

使用功能 EXTRACT(字段FROM源)

SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 2

文档链接:https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT