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 !