如何根据PostgreSQL中的当前季度查找上一季度的值?

时间:2015-08-28 06:37:46

标签: postgresql datetime

我需要找到特定日期的上一季度的价值。例如,我在2015年1月12日通过了一个日期,我需要将结果作为2014年第4季度。

如果我使用以下查询,我得到的结果为0

SELECT EXTRACT(quarter FROM '2015-01-01'::timestamp) - 1;

Result : 0

有人可以告诉我如何获得如上所述的预期结果吗?

1 个答案:

答案 0 :(得分:5)

你需要"截断"到该季度开始的日期,减去一天,然后得到该日期的季度:

extract(quarter from date_trunc('quarter', date '2015-01-01')::date - 1)

如果您希望获得年份,则需要使用to_char()代替:

to_char(date_trunc('quarter', date '2015-01-01')::date - 1, 'yyyy-q');