我需要找到特定日期的上一季度的价值。例如,我在2015年1月12日通过了一个日期,我需要将结果作为2014年第4季度。
如果我使用以下查询,我得到的结果为0
SELECT EXTRACT(quarter FROM '2015-01-01'::timestamp) - 1;
Result : 0
有人可以告诉我如何获得如上所述的预期结果吗?
答案 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');