如何使用 postgres sql 创建名称中带有日期时间的 table

How to create table with datetime in its name using postgres sql

有没有一种方法可以完全使用 postgres sql.

创建一个名称上带有日期时间的 table

考虑典型的创建 table:

CREATE TABLE someNewTable AS SELECT .... FROM someSourceTable WHERE date >= somedate AND date <somedate;

我需要的是在 table 名称中附加时间戳。时间戳是动态创建的。我知道这不是一种常见的方式,但需要用于存档目的。那么有没有办法在纯 postgres 中做到这一点 sql?

CREATE TABLE someNewTableYYYYMMDDHHMMSS AS SELECT .... FROM someSourceTable WHERE date >= somedate AND date <somedate;

提前致谢!

您似乎想要执行动态查询: https://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

那么你需要这样的东西: execute 'CREATE TABLE someNewTable' || to_char(current_timestamp, 'YYYYMMDDHHMMSS') || ' AS SELECT .... FROM someSourceTable WHERE date >= somedate AND date < somedate;'

或者,如果你想在 psql 中 运行 它,那么你还需要使用 DO 运算符: DO $$ begin execute 'CREATE TABLE someNewTable' || to_char(current_timestamp, 'YYYYMMDDHHMMSS') || ' AS SELECT .... FROM someSourceTable WHERE date >= somedate AND date < somedate;' end $$ language plpgsql;