Maison > base de données > tutoriel mysql > Quelle est la différence entre les formats d'année « AAAA » et « RRRR » dans Oracle SQL ?

Quelle est la différence entre les formats d'année « AAAA » et « RRRR » dans Oracle SQL ?

Mary-Kate Olsen
Libérer: 2024-12-27 21:13:10
original
643 Les gens l'ont consulté

What's the Difference Between 'YYYY' and 'RRRR' Year Formats in Oracle SQL?

Distinction des formats « AAAA » et « RRRR » dans Oracle SQL

Dans Oracle SQL, les formats « AAAA » et « RRRR » sont tous deux représente la composante année d’une date. Cependant, il existe une différence subtile entre les deux :

Le format « AAAA » représente l'année sous la forme d'un nombre entier à quatre chiffres. Il considère toujours la valeur de l'année fournie comme l'année complète à quatre chiffres, quelle que soit sa longueur.

D'autre part, le format « RRRR » gère différemment les valeurs de l'année à deux chiffres. Lorsqu'une année à deux chiffres (par exemple 87) est fournie, « RRRR » vérifie les deux premiers chiffres de l'année en cours. Si l’année à deux chiffres fournie est comprise entre 00 et 49, elle est considérée comme faisant partie du siècle en cours. A l'inverse, si l'année à deux chiffres se situe entre 50 et 99, 'RRRR' l'interprète comme appartenant au siècle précédent.

Pour illustrer cette différence, considérons l'exemple suivant :

select trunc(to_date('27-Jul-1987'),'YYYY') FROM dual;
Copier après la connexion

Dans ce cas, le résultat sera « 1987 », car « AAAA » s'attend à ce que l'année soit représentée par un nombre complet à quatre chiffres. entier.

Maintenant, si nous utilisons le format 'RRRR' :

select trunc(to_date('27-Jul-1987'),'RRRR') FROM dual;
Copier après la connexion

Le résultat sera également '1987', car l'année à deux chiffres '87' tombe dans l'année actuelle siècle (c'est-à-dire les deux premiers chiffres de l'année en cours).

Cependant, si nous changeons la valeur de l'année en une année à deux chiffres dans au siècle précédent, les résultats diffèrent :

select trunc(to_date('27-Jul-47'),'YYYY') FROM dual;
Copier après la connexion

Cette requête renverra « 0047 » car « AAAA » interprète toujours l'année fournie comme un nombre entier à quatre chiffres.

select trunc(to_date('27-Jul-47'),'RRRR') FROM dual;
Copier après la connexion

Dans En revanche, « RRRR » interprétera l'année à deux chiffres « 47 » comme appartenant au siècle précédent et renverra « 1947 ».

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal