PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie speichert man Daten mit unterschiedlicher Genauigkeit in Postgres?

Ich würde es als date speichern und auch die Genauigkeit speichern.

Zum Beispiel:

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

Dann können Sie die Tabelle wie folgt abfragen:

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

um alle „zufälligen“ Tages- und Monatswerte in pub_date zu ignorieren .