MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment obtenir le jour, le mois et l'année à partir d'une date en SQL

La plupart des principaux SGBDR ont des fonctions qui nous permettent d'extraire le jour, le mois et l'année des valeurs datetime.

Certains RDBMS offrent plusieurs façons de le faire, et d'autres sont plus limités. Vous trouverez ci-dessous des exemples d'extraction du jour, du mois et de l'année à partir des valeurs de date dans certains des SGBDR les plus populaires.

MySQL

MySQL a plusieurs fonctions qui peuvent être utilisées pour extraire le jour, le mois et l'année d'une date. L'un d'eux est le EXTRACT() fonction :

SELECT 
    EXTRACT(DAY FROM '2035-12-19') AS Day,
    EXTRACT(MONTH FROM '2035-12-19') AS Month,
    EXTRACT(YEAR FROM '2035-12-19') AS Year;

Résultat :

+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
|   19 |    12 | 2035 |
+------+-------+------+

Dans ce cas, j'ai extrait chaque partie de date dans son propre champ.

Si vous souhaitez que toutes les parties de date soient renvoyées dans le même champ, le DATE_FORMAT() la fonction peut le faire pour vous.

MySQL a également un tas de fonctions qui renvoient des parties de date spécifiques à partir d'une date, telles que DAY() , MONTH() , YEAR() , etc.

Voir Renvoyer le jour, le mois et l'année dans MySQL pour plus d'exemples.

Oracle

Oracle a un TO_CHAR() fonction qui peut être utilisée pour extraire des parties de date dans leurs propres champs, ou toutes dans un seul champ. Voici un exemple de retour dans des champs individuels :

SELECT 
    TO_CHAR(DATE '2035-09-26', 'Day') AS Day,
    TO_CHAR(DATE '2035-09-26', 'DD') AS DD,
    TO_CHAR(DATE '2035-09-26', 'Month') AS Month,
    TO_CHAR(DATE '2035-09-26', 'YYYY') AS Year
FROM DUAL;

Résultat :

         DAY    DD        MONTH    YEAR 
____________ _____ ____________ _______ 
Wednesday    26    September    2035    

Voir cette liste complète des éléments de format Datetime dans Oracle pour une liste des éléments de format qui peuvent être utilisés pour formater les valeurs datetime avec cette fonction.

Oracle a également un EXTRACT() fonction qui fonctionne comme la fonction MySQL du même nom.

SQL Server

SQL Server propose une gamme assez large de fonctions pouvant renvoyer des parties de date telles que le jour, le mois et l'année.

Le DATEPART() est conçue spécifiquement pour renvoyer des parties spécifiées d'une date :

DECLARE @date date = '2045-07-03'; 
SELECT 
    DATEPART(day, @date) AS DAY, 
    DATEPART(weekday, @date) AS WEEKDAY, 
    DATEPART(month, @date) AS MONTH, 
    DATEPART(year, @date) AS YEAR;

Résultat :

+-------+-----------+---------+--------+
| DAY   | WEEKDAY   | MONTH   | YEAR   |
|-------+-----------+---------+--------|
| 3     | 2         | 7       | 2045   |
+-------+-----------+---------+--------+

Une fonction similaire est DATENAME() , qui peut renvoyer les noms de jour et de mois sous forme de chaîne.

SQL Server a également des fonctions telles que DAY() , MONTH() , YEAR() , etc. qui renvoient une partie de date spécifique.

Et n'oublions pas le FORMAT() fonction, ce qui est parfait si vous souhaitez renvoyer toutes les parties de date dans le même champ.

Voir 6 fonctions pour obtenir le jour, le mois et l'année à partir d'une date dans SQL Server pour plus d'exemples.

PostgreSQL

PostgreSQL a quelques fonctions qui peuvent renvoyer des parties de date à partir de dates.

Voici un exemple de DATE_PART() fonction :

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Résultat :

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

PostgreSQL a également un EXTRACT() fonction qui fait fondamentalement la même chose, sauf avec une syntaxe légèrement différente.

Et le TO_CHAR() La fonction peut être utilisée si vous souhaitez renvoyer plusieurs parties de date dans le même champ.

SQLite

SQLite est plus limité en ce qui concerne les fonctions de date et d'heure. Cependant, vous pouvez toujours utiliser le STRFTIME() fonction pour extraire le jour, le mois et l'année d'une date :

SELECT STRFTIME('%d %m %Y', '2035-12-01');

Résultat :

01 12 2035

Dans cet exemple, j'ai renvoyé toutes les parties de date dans le même champ. Mais ce n'est pas forcément obligatoire. Si vous voulez qu'ils soient renvoyés dans différents champs, vous pouvez appeler STRFTIME() plusieurs fois, chacune avec un élément de format différent :

SELECT 
    strftime('%d', '2035-12-01') AS "Day",
    strftime('%m', '2035-12-01') AS "Month",
    strftime('%Y', '2035-12-01') AS "Year";

Résultat :

Day  Month  Year
---  -----  ----
01   12     2035

MariaDB

MariaDB fournit une grande sélection de fonctions qui peuvent renvoyer le jour, le mois et l'année à partir d'une valeur datetime.

Voici un exemple de DATE_FORMAT() fonction :

SELECT DATE_FORMAT('2023-07-25', '%W, %D %M %Y');

Résultat :

+-------------------------------------------+
| DATE_FORMAT('2023-07-25', '%W, %D %M %Y') |
+-------------------------------------------+
| Tuesday, 25th July 2023                   |
+-------------------------------------------+

Cette fonction nous permet de renvoyer toutes les parties de date dans un seul champ (bien que cela ne soit pas obligatoire - vous pouvez tout aussi facilement renvoyer chaque partie de date dans un champ différent en appelant DATE_FORMAT() plusieurs fois, chaque fois avec une chaîne de format différente).

Et comme certains autres, MariaDB a aussi un EXTRACT() fonction qui extrait une partie de date donnée.

Et il existe également une large gamme de fonctions spécifiques pour chaque partie de date, telles que DAY() , MONTH() , YEAR() , etc

Voir 11 fonctions pour obtenir le jour, le mois et l'année à partir d'une date dans MariaDB pour un aperçu complet.