作为标题,如何设置一个表的列,使其默认值为当前年份和月份,格式为“YYYYMM”,如今天的200905?
请记住,日期的格式与存储无关。如果您对日期是必需的,则以该格式存储日期,则需要定义自定义数据类型或将其存储为字符串。然后,您可以使用
extract,类型转换和级联的组合来获得该格式。
但是,我怀疑要存储日期并获取输出格式。所以,这样的事情会为你做点窍门:
create table my_table ( id serial primary key not null,my_date date not null default CURRENT_DATE ); (CURRENT_DATE is basically a synonym for now() and a cast to date).
(编辑使用to_char)。
你可以得到你的输出:
select id,to_char(my_date,'yyyymm') from my_table;
现在,如果您真的需要将该字段存储为字符串,并确保您可以始终执行的格式:
CREATE TABLE my_other_table ( id serial primary key not null,my_date varchar(6) default to_char(CURRENT_DATE,'yyyymm') );