PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment définir un horodatage de valeur par défaut Postgresql comme 'YYYYMM'?

Veuillez garder à l'esprit que le formatage de la date est indépendant du stockage. S'il est essentiel pour vous que la date soit stockée dans ce format, vous devrez soit définir un type de données personnalisé, soit le stocker sous forme de chaîne. Ensuite, vous pouvez utiliser une combinaison de extrait , transtypage et concaténation pour obtenir ce format.

Cependant, je soupçonne que vous souhaitez stocker une date et obtenir le format en sortie. Donc, quelque chose comme ça fera l'affaire pour vous :

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

(Modifié pour utiliser to_char).

Ensuite, vous pouvez obtenir votre sortie comme :

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

Maintenant, si vous avez fait vraiment besoin de stocker ce champ sous forme de chaîne et d'assurer le format que vous pourriez toujours faire :

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