Fonction DATE SQL
Date SQL
L'une des tâches les plus difficiles lorsque nous traitons les dates est sans doute de nous assurer que le format de la date insérée correspond au format de la colonne date dans la base de données.
Si les données contiennent uniquement une partie date, l'exécution de la requête ne posera pas de problème. Mais si la partie heure est impliquée, la situation est un peu plus complexe.
Avant de discuter de la complexité des requêtes de date, regardons d'abord les fonctions de traitement de date internes les plus importantes.
Fonction
Description
Fonction | Description |
---|---|
NOW() | Retourne la date et l'heure actuelles |
CURDATE() | Retourne la date actuelle |
CURTIME() | Retourne l'heure actuelle |
DATE() | Extrait la partie date d'une expression date/heure ou date |
EXTRACT() | Retourne une partie individuelle de la date/heure en fonction de la période |
DATE_ADD() | Ajoute une période spécifiée à une date |
DATE_SUB() | Soustrait une période spécifiée à une date |
DATEDIFF() | Retourne le nombre de jours entre deux dates |
DATE_FORMAT() | Affichage de la date/heure avec différents formats |
Fonctions de date SQL Server
Le tableau suivant liste les fonctions de date internes les plus importantes de SQL Server :
Fonction | Description |
---|---|
GETDATE() | Retourne la date et l'heure actuelles |
DATEPART() | Retourne une partie individuelle de la date/heure |
DATEADD() | Ajoute ou soustrait une période spécifiée à une date |
DATEDIFF() | Retourne la différence en temps entre deux dates |
CONVERT() | Affichage de la date/heure avec différents formats |
Type de données SQL Date
MySQL utilise les types de données suivants pour stocker des valeurs de date ou de date/heure dans la base de données :
- 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 Server utilise les types de données suivants pour stocker des valeurs de date ou de date/heure dans la base de données :
- DATE - Format YYYY-MM-DD
- DATETIME - Format : YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format : YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format : Numéro unique
Traitement des dates SQL
Si nous ne nous référons pas à la partie temps, nous pouvons comparer deux dates sans difficulté !
Supposons que nous ayons le tableau "Orders" suivant :
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
2 | printer | 2008-12-26 |
3 | electrograph | 2008-11-12 |
4 | telephone | 2008-10-19 |
Maintenant, nous souhaitons sélectionner les enregistrements avec OrderDate '2008-12-26' dans le tableau précédent.
Nous utilisons l'expression SELECT suivante :
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Ensemble de résultats :
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
3 | electrograph | 2008-12-26 |
Maintenant, supposons que la classe "Orders" soit ainsi (veuillez noter la partie temps de la colonne "OrderDate"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 16:23:55 |
2 | printer | 2008-12-26 10:45:26 |
3 | electrograph | 2008-11-12 14:12:08 |
4 | telephone | 2008-10-19 12:56:10 |
Si nous utilisons l'expression SELECT ci-dessus :
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Nous ne pouvons pas obtenir de résultats. C'est parce que la date de la requête ne contient pas de partie temps.
Astuce :Si vous souhaitez que la requête soit simple et plus facile à maintenir, n'utilisez pas la partie temps dans la date !