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
716 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!

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