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

Como armazenar datas com diferentes níveis de precisão no postgres?


Eu armazenaria como date e armazene a precisão também.

Por exemplo:
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
);

Então você pode consultar a tabela assim:
SELECT pub_id, date_trunc(pub_date_prec::text, pub_date)::date FROM pub;

para ignorar quaisquer valores "aleatórios" de dia e mês em pub_date .