我正在尝试构建一个查询,以根据当前的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');
任何人都可以提供帮助。感谢。
答案 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:这是一个错字,还是你真的有created
和created_at
列?