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

Comment stocker des dates avec différents niveaux de précision dans postgres ?

Je le stockerais en tant que date et stockez également la précision.

Par exemple :

CREATE TYPE date_prec AS ENUM ('day', 'month', 'year');

CREATE TABLE pub (
   pub_id integer PRIMARY KEY,
   pub_date date NOT NULL,
   pub_date_prec date_prec NOT NULL
);

Ensuite, vous pouvez interroger la table comme ceci :

SELECT pub_id, date_trunc(pub_date_prec::text, pub_date)::date FROM pub;

pour ignorer toutes les valeurs de jour et de mois "aléatoires" dans pub_date .