Voici 4 fonctions qui vous permettent de retourner l'année à partir d'une date dans MariaDB. Trois fonctions renvoient uniquement l'année, et une renvoie à la fois l'année et la semaine.
Le YEAR()
Fonction
Le YEAR()
La fonction renvoie l'année pour une date donnée. Le résultat est dans la plage 1000
à 9999
, ou 0
pour les dates qui ont une année nulle (comme 0000-00-00
).
Exemple :
SELECT YEAR('2023-07-25');
Résultat :
+--------------------+ | YEAR('2023-07-25') | +--------------------+ | 2023 | +--------------------+
Le EXTRACT()
Fonction
Le
La fonction vous permet d'extraire une unité spécifiée de la date. Par conséquent, vous pouvez l'utiliser pour extraire l'année (ainsi que d'autres unités) de la date.EXTRACT
()
Exemple :
SELECT EXTRACT(YEAR FROM '2023-07-25');
Résultat :
+---------------------------------+ | EXTRACT(YEAR FROM '2023-07-25') | +---------------------------------+ | 2023 | +---------------------------------+
Le DATE_FORMAT()
Fonction
Le DATE_FORMAT()
La fonction vous permet de formater une date en fonction d'une chaîne de format. La chaîne de format spécifie comment la date doit être formatée.
Vous pouvez donc utiliser cette fonction pour renvoyer l'année (ainsi que toute autre unité) à partir de la date. Il existe différents spécificateurs de format pour renvoyer l'année dans différents formats. Par exemple une année à quatre chiffres, une année à deux chiffres, etc.
Voici un exemple qui renvoie l'année sous différentes formes :
SELECT
DATE_FORMAT('2023-01-01', '%X') AS "%X",
DATE_FORMAT('2023-01-01', '%x') AS "%x",
DATE_FORMAT('2023-01-01', '%Y') AS "%Y",
DATE_FORMAT('2023-01-01', '%y') AS "%y";
Résultat :
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2022 | 2023 | 23 | +------+------+------+------+
Notez que %x
renvoyé un numéro d'année différent des autres.
Voici une description de chacun de ces spécificateurs de format, qui explique pourquoi %x
a renvoyé un résultat différent :
Spécificateur de format | Description |
---|---|
%X | Année à 4 chiffres lorsque le premier jour de la semaine est le dimanche. Utilisé avec %V . |
%x | Année à 4 chiffres lorsque le premier jour de la semaine est lundi. Utilisé avec %v . |
%Y | Année à 4 chiffres. |
%y | Année sur 2 chiffres. |
Et voici une description de %V
et %v
comme indiqué dans le tableau ci-dessus :
Spécificateur de format | Description |
---|---|
%V | Numéro de la semaine (01-53), lorsque le premier jour de la semaine est le dimanche. Utilisé avec %X . |
%v | Numéro de la semaine (01-53), lorsque le premier jour de la semaine est le lundi. Utilisé avec %x . |
Nous pourrions donc ajouter ces spécificateurs de format à l'exemple ci-dessus et obtenir ce qui suit :
SELECT
DATE_FORMAT('2023-01-01', '%X, %V') AS "%X, %V",
DATE_FORMAT('2023-01-01', '%x, %v') AS "%x, %v";
Résultat :
+----------+----------+ | %X, %V | %x, %v | +----------+----------+ | 2023, 01 | 2022, 52 | +----------+----------+
Notez que %x
ne renverra pas toujours une année différente - cela dépend de la date réelle utilisée. Parfois, c'est %X
qui renvoie une année différente des autres.
Avançons la date d'un an :
SELECT
DATE_FORMAT('2024-01-01', '%X') AS "%X",
DATE_FORMAT('2024-01-01', '%x') AS "%x",
DATE_FORMAT('2024-01-01', '%Y') AS "%Y",
DATE_FORMAT('2024-01-01', '%y') AS "%y";
Résultat :
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2023 | 2024 | 2024 | 24 | +------+------+------+------+
Cette fois c'est %X
c'est l'intrus. Comme expliqué dans le tableau ci-dessus, cela dépend si le premier jour de la semaine est le dimanche ou le lundi.
Bien sûr, si nous avançons plus loin dans l'année, tous les spécificateurs de format renvoient la même année :
SELECT
DATE_FORMAT('2024-12-12', '%X') AS "%X",
DATE_FORMAT('2024-12-12', '%x') AS "%x",
DATE_FORMAT('2024-12-12', '%Y') AS "%Y",
DATE_FORMAT('2024-12-12', '%y') AS "%y";
Résultat :
+------+------+------+------+ | %X | %x | %Y | %y | +------+------+------+------+ | 2024 | 2024 | 2024 | 24 | +------+------+------+------+
Voir Chaînes de format MariaDB pour une liste complète des chaînes/spécificateurs de format.
Le YEARWEEK()
Fonction
Le YEARWEEK()
La fonction renvoie l'année et la semaine pour une date donnée.
Exemple :
SELECT YEARWEEK('2023-01-01');
Résultat :
+------------------------+ | YEARWEEK('2023-01-01') | +------------------------+ | 202301 | +------------------------+
L'année dans le résultat peut être différente de l'année dans l'argument de date pour la première et la dernière semaine de l'année.
Voici ce qui se passe si nous avançons d'un an :
SELECT YEARWEEK('2024-01-01');
Résultat :
+------------------------+ | YEARWEEK('2024-01-01') | +------------------------+ | 202353 | +------------------------+
Le YEARWEEK()
La fonction accepte un deuxième argument facultatif pour spécifier le mode. Le résultat réel que vous obtiendrez de cette fonction dépendra du mode utilisé. Si l'argument mode est omis, la valeur du default_week_format
variable système est utilisée.
Découvrez comment YEARWEEK()
Fonctionne dans MariaDB pour en savoir plus sur les modes et les exemples de chacun.