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

时间:2014-01-09 12:01:49

标签: sql postgresql date date-format create-table

我想创建一个新表并设置具有特定格式的日期类型。这可能吗?

例如:

CREATE TABLE User (
... 
EXPIRATION DATE " YYYY/MM"
... 
)

1 个答案:

答案 0 :(得分:4)

我建议采用不同的方法:从不将日期/时间存储为character typetextvarchar(),...)。使用appropriate type,可能是date

此外,从不使用reserved words作为标识符。 user是不可能开始的,你必须双引号,我不鼓励。 可能看起来像这样:

CREATE TABLE usr (
  usr_id serial PRIMARY KEY
 ,usr text UNIQUE
 ,expiration_date date
  ... 
);

现在,只要它们是明确的,各种输入格式都是可能的。 related question @DrColossos has linked to in his comment有更多内容 The manual has all the details.

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

INSERT INTO usr (usr, expiration_date)
VALUES ('flippin_user', to_date($my_date_literal, ' YYYY/MM');

注意:如果您在模式中包含前导空白,则可以从输入中获得它!

最后,您可以使用输出上的to_char()以您喜欢的方式设置日期格式:

SELECT usr, to_char(expiration_date, ' YYYY/MM') AS formatted_exp_date
WHERE  usr_id = 1;