Lors du formatage des dates dans Oracle Database, nous avons la possibilité d'utiliser RR et YY pour renvoyer une année à deux chiffres.
Ces deux éléments de format sont similaires. La différence réside dans la façon dont ils interprètent les années à deux chiffres.
Nous avons également la possibilité d'utiliser RRRR et YYYY lors du retour des années à quatre chiffres.
Exemple
Voici un exemple qui compare le RR et YY éléments de format :
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RR'), 'YYYY') AS "RR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YY'), 'YYYY') AS "YY"
FROM DUAL; Résultat :
RR YY _______ _______ 1981 2081
Nous pouvons voir que RR interprète l'année 81 comme 1981, tandis que YY l'interprète comme 2081.
- Lorsque vous utilisez
YY, l'année renvoyée a toujours les mêmes 2 premiers chiffres que l'année en cours. - Avec
RR, le siècle de la valeur renvoyée varie en fonction de l'année à deux chiffres spécifiée et des deux derniers chiffres de l'année en cours.
Voici comment la documentation Oracle l'explique :
- Si l'année à deux chiffres spécifiée est comprise entre 00 et 49, alors
- Si les deux derniers chiffres de l'année en cours sont compris entre 00 et 49, l'année renvoyée comporte les deux premiers chiffres de l'année en cours.
- Si les deux derniers chiffres de l'année en cours sont compris entre 50 et 99, les deux premiers chiffres de l'année renvoyée sont supérieurs de 1 aux deux premiers chiffres de l'année en cours.
- Si l'année à deux chiffres spécifiée est comprise entre 50 et 99, alors
- Si les deux derniers chiffres de l'année en cours sont compris entre 00 et 49, les 2 premiers chiffres de l'année renvoyée sont inférieurs de 1 aux 2 premiers chiffres de l'année en cours.
- Si les deux derniers chiffres de l'année en cours sont compris entre 50 et 99, l'année renvoyée a les deux premiers chiffres de l'année en cours.
Le RRRR et YYYY Éléments de format
Voici un exemple qui compare le RRRR et YYYY éléments de format :
SELECT
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-RRRR'), 'YYYY') AS "RRRR",
TO_CHAR(TO_DATE('20-Dec-81', 'DD-Mon-YYYY'), 'YYYY') AS "YYYY"
FROM DUAL; Résultat :
RRRR YYYY _______ _______ 1981 0081
Dans ce cas, RRRR renvoie la même année que RR fait, mais YYYY renvoie l'année 0081.
Les exemples ci-dessus supposent que vous savez comment TO_CHAR() et TO_DATE() travail. Voir Oracle TO_CHAR(datetime) Fonction et Oracle TO_DATE() Fonction dans Oracle pour plus d'informations.