获取上个月的第一个日期

时间:2019-06-19 20:58:37

标签: postgresql date

除了

之外,还有什么方法可以获取上个月的第一天
date_trunc('month', current_date - interval '1 month') ?

我试图将查询保存在Report Designer软件(DBxtra)中,但是在使用PostgreSQL的“间隔”功能时该软件冻结。

2 个答案:

答案 0 :(得分:0)

您可以尝试手动计算上个月。

一种方法是提取月份,如果不是12,则减去1(在这种情况下,您返回1):

SELECT to_timestamp(concat(EXTRACT(YEAR from current_date), '-',CASE (EXTRACT(MONTH from current_date)) WHEN 12 THEN 1 ELSE (EXTRACT(MONTH from current_date)-1) END,'-', 1), 'YYYY-MM-DD');

如果您不需要时区:

SELECT to_timestamp(concat(EXTRACT(YEAR from current_date), '-',CASE (EXTRACT(MONTH from current_date)) WHEN 12 THEN 1 ELSE (EXTRACT(MONTH from current_date)-1) END,'-', 1), 'YYYY-MM-DD')::timestamp without time zone;

答案 1 :(得分:0)

尝试:

make_interval(month := 1)
'1 month'::interval
cast('1 month' as interval)

代替interval '1 month'