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

Få århundredet fra en dato i PostgreSQL

I Postgres kan du bruge to_char() funktion for at returnere århundredet, baseret på en given dato.

For at gøre dette skal du bruge CC som det andet argument. Dette returnerer det tocifrede århundrede baseret på den angivne dato.

Eksempel

Her er et eksempel til at demonstrere.

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

Resultat:

21

I dette tilfælde er datoen i det 21. århundrede, så jeg får et resultat på 21.

Bemærk, at det 21. århundrede starter 2001-01-01.

Her er, hvad der sker, hvis jeg bruger en dato før det.

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

Resultat:

20

Tilføj ordenstalssuffikset

Du kan tilføje th eller TH til det andet argument for at tilføje ordinalindikatoren til århundredet.

th tilføjer et ordinaltalsuffiks med små bogstaver og TH tilføjer et suffiks med stort ordenstal.

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

Resultat:

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

Tilføj "Century"

Århundredeværdien og dens ordinære indikator kan nu sammenkædes med strengen "Century", hvis det kræves.

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

Resultat:

21st Century!

  1. Selleri Worker Database Connection Pooling

  2. 6 problemforespørgsler, der gør din database meget langsommere

  3. Sådan fungerer MAKEDATE() i MariaDB

  4. Top Open Source-værktøjer til MySQL &MariaDB-migreringer