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

Ottieni il secolo da una data in PostgreSQL

In Postgres, puoi usare to_char() funzione per restituire il secolo, in base a una data data.

Per farlo, usa CC come secondo argomento. Questo restituisce il secolo a due cifre in base alla data fornita.

Esempio

Ecco un esempio da dimostrare.

SELECT to_char(date '2001-03-20', 'CC');

Risultato:

21

In questo caso la data è nel 21° secolo, quindi ottengo un risultato di 21.

Si noti che il 21° secolo inizia il 01-01-2001.

Ecco cosa succede se utilizzo una data precedente.

SELECT to_char(date '2000-03-20', 'CC');

Risultato:

20

Aggiungi il suffisso del numero ordinale

Puoi aggiungere th o TH al secondo argomento per aggiungere l'indicatore ordinale al secolo.

th aggiunge un suffisso di numero ordinale minuscolo e TH aggiunge un suffisso di numero ordinale maiuscolo.

SELECT 
  to_char(date '2001-03-20', 'CCth') AS "2001 CCth",
  to_char(date '2001-03-20', 'CCTH') AS "2001 CCTH",
  to_char(date '2000-03-20', 'CCth') AS "2000 CCth",
  to_char(date '2000-03-20', 'CCTH') AS "2000 CCTH";

Risultato:

 2001 CCth | 2001 CCTH | 2000 CCth | 2000 CCTH 
-----------+-----------+-----------+-----------
 21st      | 21ST      | 20th      | 20TH

Aggiungi "Secolo"

Il valore del secolo e il suo indicatore ordinale ora possono essere concatenati con la stringa "Century", se necessario.

SELECT 
  concat(to_char(date '2001-03-20', 'CCth'), ' Century!');

Risultato:

21st Century!