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 SELECT
n'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 SELECT
sans 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
.
GO TO FULL VERSION