3.1 Liste des fonctions pour travailler avec la date et l'heure

La date et l'heure sont l'un des types de données les plus courants stockés dans les bases de données. C'est pourquoi la liste des fonctions pour travailler avec eux est très longue. Voici les plus populaires :

# Fonction Description
1 CURDATE() Renvoie la date actuelle
2 CURTIME() Renvoie l'heure actuelle
3 MAINTENANT(), HEURE LOCALE() Renvoie la date actuelle et l'heure actuelle
4 ANNÉE() Renvoie l'année à partir de la date
5 MOIS() Renvoie le mois à partir d'une date
6 JOUR(), JOUR DU MOIS() Renvoie le jour à partir d'une date
7 HEURE() Renvoie seulement des heures de temps
8 MINUTE() Annonce des minutes de temps
9 DEUXIÈME() Renvoie les secondes à partir du temps
dix NOMJOUR() Renvoie le nom du jour de la semaine : Lundi, ...
onze NOMMOIS() Renvoie le nom du mois : janvier, ...
12 SEMAINE() Renvoie la semaine à partir d'une date
13 JOUR DE LA SEMAINE() Renvoie le numéro du jour de la semaine : lundi - 0, mardi - 1
14 SEMAINEANNEE() Renvoie le numéro de semaine de l'année
15 JOUR DE LA SEMAINE() Renvoie le numéro du jour de la semaine : dimanche - 1, lundi - 2
16 JOURDEANNEE() Renvoie le jour de l'année : 1-366
17 DATE() Renvoie uniquement la date d'un objet "datetime"
18 ADDATE() Ajoute des jours à une date
19 SOUS-DATE() Soustrait des jours à une date
20 AJOUTER DU TEMPS() Ajoute de temps en temps
21 SOUS-TEMPS() Soustrait le temps du temps

J'ai délibérément regroupé les fonctions en petits groupes pour faciliter la compréhension de leur utilisation. Ci-dessous, nous considérerons une fonction de chaque groupe.

Vous pouvez trouver une liste complète des fonctions pour travailler avec la date et l'heure sur le lien : https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html

3.2 Fonctions d'appel

Au fait, puisque nous apprenons tant de fonctions, je pense qu'il est utile de mentionner que l'opérateur SELECTn'a pas besoin d'être utilisé avec FROM. Il peut renvoyer la valeur de n'importe quelle expression. Dont la vue générale est donnée par le template :

SELECT expression

Et si vous voulez appeler une fonction, alors vous devez écrire du code comme :

SELECT function(options)

Ci-dessous je donnerai quelques exemples de fonctionnement de l'opérateur SELECTsans recours aux tableaux :

# Demande Résultat
1 SÉLECTIONNER 1+1 2
2 SÉLECTIONNER 13 MOD 5 3
3 SELECT RAND() 0.20771444235715497
4 SELECT CURDATE() 2022-06-04
5 SELECT HEURE ACTUELLE() 00:06:02
6 SÉLECTIONNER MAINTENANT() 2022-06-04 00:06:43

Et, comme vous pouvez le voir, dans le tableau ci-dessus, pour obtenir la date et l'heure actuelles, il vous suffit d'utiliser l'une des fonctions :

  • CURDATE()- date actuelle;
  • CURTIME()- heure actuelle;
  • NOW()– date et heure actuelles.

3.3 Regroupement des données par année et par mois

Rappelons notre tableau des tâches avec des tâches pour les employés. Essayons de regrouper les tâches de ce tableau par années. Pour cela, on utilise la fonction YEAR(), qui retourne l'année à partir de la date qui lui est passée.

La première version de notre requête ressemblera à ceci :

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    deadline
FROM task

Le résultat de cette requête sera :

identifiant id_employé nom année date limite
1 1 Correction d'un bug sur le frontend 2022 2022-06-01
2 2 Correction d'un bug sur le backend 2022 2022-06-15
3 5 Acheter du café 2022 2022-07-01
4 5 Acheter du café 2022 2022-08-01
5 5 Acheter du café 2022 2022-09-01
6 (NUL) Nettoyer le bureau (NUL) (NUL)
7 4 Profite de la vie (NUL) (NUL)
8 6 Profite de la vie (NUL) (NUL)

Nous pouvons voir que toutes les lignes ont la même année, utilisons donc deux champs - année et mois. La deuxième version de notre requête ressemblera à ceci :

SELECT
    id,
    employee_id ,
    name,
    YEAR(deadline) AS year,
    MONTH(deadline) AS month,
    deadline
FROM task

Le résultat de cette requête sera :

identifiant id_employé nom année mois date limite
1 1 Correction d'un bug sur le frontend 2022 6 2022-06-01
2 2 Correction d'un bug sur le backend 2022 6 2022-06-15
3 5 Acheter du café 2022 7 2022-07-01
4 5 Acheter du café 2022 8 2022-08-01
5 5 Acheter du café 2022 9 2022-09-01
6 (NUL) Nettoyer le bureau (NUL) (NUL) (NUL)
7 4 Profite de la vie (NUL) (NUL) (NUL)
8 6 Profite de la vie (NUL) (NUL) (NUL)

Je ne vous dirai pas comment regrouper les tâches par année et par mois - vous avez déjà étudié ceci : utilisez l'opérateur GROUP BY.