PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como definir um datatest de valor padrão do Postgresql como 'YYYYMM'?


Por favor, tenha em mente que a formatação da data é independente do armazenamento. Se for essencial para você que a data seja armazenada nesse formato, você precisará definir um tipo de dados personalizado ou armazená-lo como uma string. Em seguida, você pode usar uma combinação de extrair , typecasting e concatenação para obter esse formato.

No entanto, suspeito que você deseja armazenar uma data e obter o formato na saída. Então, algo assim fará o truque para você:
    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).

(Editado para usar to_char).

Então você pode obter sua saída como:
SELECT id, to_char(my_date, 'yyyymm') FROM my_table;

Agora, se você fez realmente precisa armazenar esse campo como uma string e garantir o formato que você sempre pode fazer:
CREATE TABLE my_other_table
(
id serial PRIMARY KEY not null,
my_date varchar(6) default to_char(CURRENT_DATE, 'yyyymm')
);