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

Ajouter l'indicateur ordinal à une date dans Oracle

Dans Oracle Database, nous pouvons utiliser le TH élément de format pour ajouter le suffixe du nombre ordinal au résultat d'un TO_CHAR() opération lors du formatage des dates.

Par exemple, au lieu de sortir 10 Feb nous pourrions afficher le 10th Feb . Ou, au lieu de sortir 21 century , nous pouvons afficher 21st century . Il en va de même pour les composants de date orthographiés. Par exemple, au lieu de Twenty One , nous pouvons sortir Twenty First .

Exemple

Voici un exemple pour illustrer :

SELECT TO_CHAR(DATE '2030-12-01', 'Ddth Month')
FROM DUAL;

Résultat :

01st December

Nous pouvons utiliser le fm modificateur de format pour supprimer le zéro non significatif si nécessaire :

SELECT TO_CHAR(DATE '2030-12-01', 'fmDdth Month')
FROM DUAL;

Résultat :

1st December

Notez que la casse du nombre ordinal est déterminée par l'élément de format pertinent (dans ce cas, le Dd partie), pas le TH suffixe.

Voici ce qui se passe lorsque nous changeons le deuxième d en majuscule :

SELECT TO_CHAR(DATE '2030-12-01', 'fmDDth Month')
FROM DUAL;

Résultat :

1st December

Ainsi, même si nous avons fourni le th suffixe en minuscules, cela n'avait aucun effet sur le résultat. La capitalisation a été déterminée par l'élément de format (n'incluant pas le fm modificateur de format).

Nous pouvons également ajouter le nombre ordinal lors du retour d'autres composants de date, tels que le siècle :

SELECT TO_CHAR(DATE '2030-12-30', 'Ccth "Century"')
FROM DUAL;

Résultat :

21st Century

Dates épelées

Nous pouvons ajouter le SP élément de format pour que la partie date soit épelée :

SELECT TO_CHAR(DATE '2030-12-30', 'CCTHSP "Century"')
FROM DUAL;

Résultat :

TWENTY-FIRST Century

Et nous pouvons utiliser les majuscules si nécessaire :

SELECT TO_CHAR(DATE '2030-12-30', 'Ccthsp "Century"')
FROM DUAL;

Résultat :

Twenty-First Century

Voici ce qui se passe lorsque nous omettons le TH spécificateur de format :

SELECT TO_CHAR(DATE '2030-12-30', 'Ccsp')
FROM DUAL;

Résultat :

Twenty-One