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

¿Cómo almacenar fechas con diferentes niveles de precisión en postgres?

Lo almacenaría como date y almacenar la precisión también.

Por ejemplo:

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

Luego puede consultar la tabla de esta manera:

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

para ignorar cualquier valor de día y mes "aleatorio" en pub_date .