2015-08-28 648 views
0

我需要找到特定日期前一季度的价值。例如像我过去的日期作为2015年1月12日,我需要的结果是2014年如何在PostgreSQL中查找基于当前季度的上一季度值?

为第4季度如果我使用下面的查询,我得到的结果为0

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

Result : 0 

有人可以让我知道如何获得我想要的结果,如上所述?

回答

4

你需要“TRUNC”日其季度开始,减去了一天,然后拿到季度该日期:

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'); 
+0

如果我想获得前3个季度?对于2015年1月,我需要2014年的最后三个季度...... –

+0

@YousufSultan:然后在循环中重复上面的代码,应用相同的原则。顺便说一句:在收到答案后稍后改变问题的范围并不是很好。你应该始终从一开始就说出你的_complete_问题。 –

+0

我的错误道歉......将确保我从下一次提出我的确切要求... –

相关问题