PostgreSQL导出表.csv作为当前日期

时间:2018-05-08 19:13:15

标签: postgresql

我需要将我的表导出为.csv文件,但名称必须是当前日期。

目前我正在使用

COPY public."table" TO 'E:\job.csv' DELIMITER ',' CSV HEADER

我该怎么办?我试着寻找答案,但没有运气......

1 个答案:

答案 0 :(得分:1)

您始终可以运行动态SQL

DO $func$
BEGIN
  EXECUTE $$
    COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
  $$;
END;
$func$ LANGUAGE plpgsql;

因此,您将命令形成为字符串,然后将其传递给EXECUTE。这可以作为plpgsql使用,您可以按照我已经显示的内联方式运行,或者声明为函数:

CREATE OR REPLACE FUNCTION public.export_table()
RETURNS VOID AS $func$
BEGIN
  EXECUTE $$
    COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
  $$;
END;
$func$ LANGUAGE plpgsql;

然后使用SELECT public.export_table()

调用它