sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan gemmer man datoer med forskellige niveauer af præcision i postgres?

Jeg ville gemme det som date og gem præcisionen også.

For eksempel:

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

Så kan du forespørge tabellen sådan her:

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

at ignorere eventuelle "tilfældige" dag- og månedsværdier i pub_date .



  1. langsom mysql-forespørgsel, der skal udføres hundredtusindvis af gange i timen

  2. Masseopdatering af en samlet tabel med ActiveRecord update_all og Rails 4

  3. System.Data.OracleClient.OracleException:ORA-01036:ulovlig variabelnavn/nummer

  4. SQL DEFAULT Begrænsning for at indsætte kolonne med en standardværdi til SQL Server-tabel