有人可以帮我在postgres中编写这个SQL查询

时间:2016-11-07 13:44:05

标签: postgresql-9.1

select SPARE_PART_ID amont_id,sum(amount) monthAmount 
from pmms.SPARE_PART_TRANS_INFO 
where trans_type='2' 
and CAST(created_dt AS date) between '2016-09-19' and '2016-09-27' 
group by SPARE_PART_ID,DATEADD(month, DATEDIFF(month, 0, CAST(created_dt AS date)), 0)

在此查询中,DATEADD和DATEDIFF函数无效,因为它表示月份不存在。

帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

Postgresql中没有DATEDIFF函数,因此您收到此错误。

您可以使用此查询获得数月差异,而不是使用DATEDIFF

SELECT (DATE_PART('year', '2012-01-01'::date) - DATE_PART('year', '2011-10-02'::date)) * 12 +
              (DATE_PART('month', '2012-01-01'::date) - DATE_PART('month', '2011-10-02'::date));

检查details上述查询的用法,这将解释DATEDIFF不在Postgresql中。