PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Obtenir le siècle à partir d'une date dans PostgreSQL

Dans Postgres, vous pouvez utiliser le to_char() fonction pour retourner le siècle, basé sur une date donnée.

Pour ce faire, utilisez CC comme deuxième argument. Cela renvoie le siècle à deux chiffres en fonction de la date fournie.

Exemple

Voici un exemple pour illustrer.

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

Résultat :

21

Dans ce cas, la date est au 21ème siècle, donc j'obtiens un résultat de 21.

Notez que le 21e siècle commence le 2001-01-01.

Voici ce qui se passe si j'utilise une date antérieure.

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

Résultat :

20

Ajouter le suffixe du nombre ordinal

Vous pouvez ajouter th ou TH au deuxième argument afin d'ajouter l'indicateur ordinal au siècle.

th ajoute un suffixe de nombre ordinal en minuscule et TH ajoute un suffixe de nombre ordinal majuscule.

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

Résultat :

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

Ajouter "Siècle"

La valeur du siècle et son indicateur ordinal peuvent désormais être concaténés avec la chaîne "Century" si nécessaire.

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

Résultat :

21st Century!