sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo establecer una marca de fecha de valor predeterminado de Postgresql como 'YYYYMM'?

Tenga en cuenta que el formato de la fecha es independiente del almacenamiento. Si es esencial para usted que la fecha esté almacenada en ese formato, deberá definir un tipo de datos personalizado o almacenarlo como una cadena. Luego puede usar una combinación de extract , encasillamiento y concatenación para obtener ese formato.

Sin embargo, sospecho que desea almacenar una fecha y obtener el formato en la salida. Entonces, algo como esto hará el truco por ti:

    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).

Entonces puede obtener su salida como:

SELECT id, to_char(my_date, 'yyyymm') FROM my_table;

Ahora, si lo hiciste realmente necesita almacenar ese campo como una cadena y garantizar el formato que siempre podría hacer:

CREATE TABLE my_other_table
(
id serial PRIMARY KEY not null,
my_date varchar(6) default to_char(CURRENT_DATE, 'yyyymm')
);