在Postgres中提取上个月的数据(基于当前日期)

时间:2018-04-11 18:30:14

标签: postgresql date

我正在尝试构建一个查询,以根据当前的sys日期提取上个月的数据。

以下是我尝试构建的查询,但没有运气。

SELECT order_number,date_part('month', created),created_at from order_table 
where date_part('yyyy-mm', created) = to_char(date_trunc('month',CURRENT_DATE) - cast('1 month' as interval),'mm');

任何人都可以提供帮助。感谢。

1 个答案:

答案 0 :(得分:0)

如果您使用created,则BETWEEN使用任何索引的可能性更高:

SELECT order_number, date_part('month', created), created_at
FROM   order_table 
WHERE  created BETWEEN date_trunc('month', current_timestamp) - interval '1 month'
                   AND date_trunc('month', current_timestamp);

甚至:

WHERE  created BETWEEN date_trunc('month', current_timestamp - interval '1 month')
                   AND date_trunc('month', current_timestamp);

仅供参考:原始查询不起作用,因为您在等式的每一边使用不同的date_part模式。

PS:这是一个错字,还是你真的有createdcreated_at列?

相关问题