sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur lagrar man datum med olika precisionsnivåer i postgres?

Jag skulle lagra det som date och lagra precisionen också.

Till exempel:

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

Sedan kan du fråga tabellen så här:

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

för att ignorera eventuella "slumpmässiga" dag- och månadsvärden i pub_date .



  1. Indexerad BESTÄLLNING AV med LIMIT 1

  2. Infoga Python List (JSON eller annat) i MySQL-databasen

  3. Får Oracle PL/SQL serverns IP v4?

  4. oracle sql (saknar vänster parentes