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

3 façons de séparer l'année, le mois et le jour d'une date dans MariaDB

MariaDB a plusieurs fonctions qui vous permettent d'extraire diverses parties de date et d'heure à partir de valeurs de date/heure. Vous pouvez les utiliser pour séparer chaque composant date/heure dans sa propre colonne si nécessaire.

Vous trouverez ci-dessous trois façons d'extraire l'année, le mois et le jour d'une valeur de date dans MariaDB.

Le YEAR() , MONTH() , et DAY() Fonctions

Le YEAR() , MONTH() , et DAY() extraient respectivement l'année, le mois et le jour d'une valeur date ou datetime.

Voici un exemple d'utilisation de ces fonctions pour renvoyer chaque composant de date dans sa propre colonne :

SELECT 
    YEAR('2025-08-30') AS "Year",
    MONTH('2025-08-30') AS "Month",
    DAY('2025-08-30') AS "Day";

Résultat :

+------+-------+------+
| Year | Month | Day  |
+------+-------+------+
| 2025 |     8 |   30 |
+------+-------+------+

Le DAY() la fonction est en fait un synonyme de DAYOFMONTH() , donc l'un ou l'autre renverra le même résultat.

Il y a aussi un WEEKDAY() fonction, un DAYOFWEEK() fonction, un DAYOFYEAR() fonction, et un DAYNAME() fonction, chacune renvoyant une représentation différente du jour.

De plus, il y a un MONTHNAME() fonction qui renvoie le nom du mois, au lieu de son numéro.

Voici un autre exemple qui inclut ces fonctions :

SELECT 
    YEAR('2025-08-30') AS "YEAR",
    MONTH('2025-08-30') AS "MONTH",
    MONTHNAME('2025-08-30') AS "MONTHNAME",
    DAY('2025-08-30') AS "DAY",
    DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
    WEEKDAY('2025-08-30') AS "WEEKDAY",
    DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
    DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
    DAYNAME('2025-08-30') AS "DAYNAME";

Résultat (en utilisant la sortie verticale) :

      YEAR: 2025
     MONTH: 8
 MONTHNAME: August
       DAY: 30
DAYOFMONTH: 30
   WEEKDAY: 5
 DAYOFWEEK: 7
 DAYOFYEAR: 242
   DAYNAME: Saturday

Vous pouvez également utiliser des fonctions telles que WEEK() pour renvoyer le numéro de la semaine, et QUARTER() pour retourner le trimestre.

Exemple :

SELECT 
    WEEK('2025-08-30') AS "Week",
    QUARTER('2025-08-30') AS "Quarter";

Résultat :

+------+---------+
| Week | Quarter |
+------+---------+
|   34 |       3 |
+------+---------+

La WEEK() La fonction accepte un deuxième argument qui vous permet de spécifier le mode. Cela peut modifier le numéro de semaine résultant, en fonction de la date réelle. Voir comment WEEK() Fonctionne dans MariaDB pour plus d'informations et un exemple.

Le EXTRACT() Fonction

Le EXTRACT() La fonction vous permet d'extraire une unité spécifiée de la valeur date/heure. Par conséquent, vous pouvez l'utiliser pour extraire l'année, le mois et le jour de la date (ainsi que la semaine et le trimestre si nécessaire).

Exemple :

SELECT 
    EXTRACT(YEAR FROM '2023-03-12') AS "Year",
    EXTRACT(MONTH FROM '2023-03-12') AS "Month",
    EXTRACT(DAY FROM '2023-03-12') AS "Day",
    EXTRACT(WEEK FROM '2023-03-12') AS "Week",
    EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter";

Résultat :

+------+-------+------+------+---------+
| Year | Month | Day  | Week | Quarter |
+------+-------+------+------+---------+
| 2023 |     3 |   12 |   11 |       1 |
+------+-------+------+------+---------+

Le DATE_FORMAT() Fonction

Le DATE_FORMAT() La fonction vous permet de formater une valeur date ou datetime en fonction d'une chaîne de format. La chaîne de format spécifie comment la date/heure doit être formatée.

On peut donc utiliser cette fonction pour retourner l'année, le mois, le jour et la semaine à partir d'une date.

Exemple :

SELECT 
    DATE_FORMAT('2035-12-08', '%Y') AS "Year",
    DATE_FORMAT('2035-12-08', '%m') AS "Month",
    DATE_FORMAT('2035-12-08', '%d') AS "Day",
    DATE_FORMAT('2035-12-08', '%U') AS "Week";

Résultat :

+------+-------+------+------+
| Year | Month | Day  | Week |
+------+-------+------+------+
| 2035 | 12    | 08   | 48   |
+------+-------+------+------+

Il existe plusieurs spécificateurs de format possibles pour chaque partie de date. Chaque partie de date peut renvoyer une valeur différente, selon le spécificateur de format réel fourni. Par exemple, vous pouvez renvoyer le nom complet du mois en utilisant %M au lieu de %m .

Voir Chaînes de format MariaDB pour une liste complète des chaînes/spécificateurs de format pouvant être utilisés avec DATE_FORMAT() .