PostgreSQL-创建表格并设置特定的日期格式

D-L*_*Lef 5 sql postgresql date date-format create-table

我想创建一个新表并使用特定格式设置日期类型。那可能吗?

例如:

CREATE TABLE User (
... 
EXPIRATION DATE " YYYY/MM"
... 
)
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 5

我提出一个不同的做法:切勿存储日期/时间,字符类型textvarchar(),...)开始。使用合适的类型,可能date在您的情况下。

另外,切勿使用保留字作为标识符。user刚开始是不可能的,您必须双引号,我不鼓励这样做。可能看起来像这样:

CREATE TABLE usr (
  usr_id serial PRIMARY KEY
 ,usr text UNIQUE
 ,expiration_date date
  ... 
);
Run Code Online (Sandbox Code Playgroud)

现在,只要它们是明确的,就可以使用各种输入格式。@DrColossos在其评论中链接到相关问题对此有更多了解。
该手册包含所有详细信息。

要强制使用特定的输入格式,可以通过to_date()函数运行文本文字。例:

INSERT INTO usr (usr, expiration_date)
VALUES ('flippin_user', to_date($my_date_literal, ' YYYY/MM');
Run Code Online (Sandbox Code Playgroud)

注意:如果您在模式中包含前导空白,则应从输入中进行预期!

最后,您可以根据需要to_char()输出上设置日期格式:

SELECT usr, to_char(expiration_date, ' YYYY/MM') AS formatted_exp_date
WHERE  usr_id = 1;
Run Code Online (Sandbox Code Playgroud)