除了
之外,还有什么方法可以获取上个月的第一天date_trunc('month', current_date - interval '1 month') ?
我试图将查询保存在Report Designer软件(DBxtra)中,但是在使用PostgreSQL的“间隔”功能时该软件冻结。
答案 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'