SQL DateFonctions
Dates SQL
Lorsqu'on travaille avec des dates, la tâche la plus difficile est probablement de s'assurer que le format de la date insérée correspond au format de la colonne de date dans la base de données.
Tant que vos données ne contiennent que la partie date, l'exécution de requêtes ne posera pas de problème. Cependant, si la partie heure est impliquée, la situation est un peu plus compliquée.
Avant de discuter de la complexité des requêtes sur les dates, examinons d'abord les fonctions intégrées de traitement des dates les plus importantes.
Fonctions de date MySQL
Le tableau suivant répertorie les fonctions de date intégrées les plus importantes dans MySQL :
| Fonction | Description |
|---|---|
| NOW() | Renvoie la date et l'heure actuelles |
| CURDATE() | Renvoie la date actuelle |
| CURTIME() | Renvoie l'heure actuelle |
| DATE() | Extrait la partie date d'une date ou d'une expression date/heure |
| EXTRACT() | Renvoie la partie individuelle d'une date/heure |
| DATE_ADD() | Ajoute un intervalle de temps spécifié à une date |
| DATE_SUB() | Soustrait un intervalle de temps spécifié à une date |
| DATEDIFF() | Renvoie le nombre de jours entre deux dates |
| DATE_FORMAT() | Affiche la date/l'heure dans différents formats |
Fonctions de date SQL Server
Le tableau suivant répertorie les fonctions de date intégrées les plus importantes dans SQL Server :
| Fonction | Description |
|---|---|
| GETDATE() | Renvoie la date et l'heure actuelles |
| DATEPART() | Renvoie la partie individuelle d'une date/heure |
| DATEADD() | Ajoute ou soustrait un intervalle de temps spécifié à une date |
| DATEDIFF() | Renvoie le temps entre deux dates |
| CONVERT() | Affiche la date/l'heure dans différents formats |
Types de données de date SQL
MySQLStockez des valeurs de date ou de date/heure dans une base de données à l'aide des types de données suivants :
- DATE - Format : YYYY-MM-DD
- DATETIME - Format : YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format : YYYY-MM-DD HH:MM:SS
- YEAR - Format : YYYY ou YY
SQL ServerStockez des valeurs de date ou de date/heure dans une base de données à l'aide des types de données suivants :
- DATE - Format : YYYY-MM-DD
- DATETIME - Format : YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format : YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format : Nombre unique
Remarque :Lorsque vous créez une nouvelle table dans la base de données, vous devez sélectionner un type de données pour les colonnes !
Pour tous les types de données disponibles, consultez notreManuel de référence des types de données complet。
Traitement des dates SQL
Si la partie temporelle n'entre pas en jeu, nous pouvons facilement comparer deux dates !
Supposons que nous ayons la table "Orders" suivante :
| OrderId | ProductName | OrderDate |
|---|---|---|
| 1 | Geitost | 2008-11-11 |
| 2 | Camembert Pierrot | 2008-11-09 |
| 3 | Mozzarella di Giovanni | 2008-11-11 |
| 4 | Mascarpone Fabioli | 2008-10-29 |
Maintenant, nous voulons sélectionner l'enregistrement dont OrderDate est "2008-11-11" dans la table ci-dessus.
Nous utilisons l'instruction SELECT suivante :
L'ensemble de résultats est affiché ci-dessous :
| OrderId | ProductName | OrderDate |
|---|---|---|
| 1 | Geitost | 2008-11-11 |
| 3 | Mozzarella di Giovanni | 2008-11-11 |
Maintenant, supposons que la table "Orders" ressemble à ceci (notez la partie temporelle dans la colonne "OrderDate") :
| OrderId | ProductName | OrderDate |
|---|---|---|
| 1 | Geitost | 2008-11-11 13:23:44 |
| 2 | Camembert Pierrot | 2008-11-09 15:45:21 |
| 3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
| 4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Si nous utilisons la même instruction SELECT que ci-dessus :
SELECT * FROM Orders WHERE OrderDate='2008-11-11' ou SELECT * FROM Orders WHERE OrderDate='2008-11-11 00:00:00'
Alors nous n'obtiendrons aucun résultat ! Parce qu'il n'y a pas de date "2008-11-11 00:00:00" dans la table. Sans partie temporelle, l'heure par défaut est 00:00:00.
Astuce :Si vous souhaitez garder des requêtes simples et plus faciles à maintenir, veuillez ne pas utiliser la partie heure dans les dates !
Autres extensions