D-L*_*Lef 5 sql postgresql date date-format create-table
我想创建一个新表并使用特定格式设置日期类型。那可能吗?
例如:
CREATE TABLE User (
...
EXPIRATION DATE " YYYY/MM"
...
)
Run Code Online (Sandbox Code Playgroud)
我提出一个不同的做法:切勿存储日期/时间,字符类型(text,varchar(),...)开始。使用合适的类型,可能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)