SQL DateFonctions


Dates SQL

NoteLorsqu'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

NoteSi 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 :

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

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