Maîtrisez la manipulation des dates en SQL (2024)

0 Partages

Il est essentiel de connaître la date et l’heure surtout quand vous traitez des données avec le langage SQL. Pour cela, il existe plusieurs fonctions qui permettent de manipuler des données à des heures et des dates précises. Vous allez découvrir dans cet article les différentes fonctions pour manipuler les dates et l’heure.

Type de données de SQL date

MySQL

Voici une liste de différents types de données fournie avec MySQL permettant de stocker une date dans une base de données :

  • DATE- format AAAA-MM-JJ
  • DATETIME- format : AAAA-MM-JJ HH:MI:SS
  • TIMESTAMP- format : AAAA-MM-JJ HH:MI:SS
  • YEAR- format AAAA ou AA

SQL Server

Il existe également plusieurs types de données permettant le stockage de date ou valeur date/heure dans la base de données si l’on utilise SQL Server.

  • DATE- format AAAA-MM-JJ
  • DATETIME- format : AAAA-MM-JJ HH:MI:SS
  • SMALLDATETIME- format : AAAA-MM-JJ HH:MI:SS
  • TIMESTAMP- format : un numéro unique

Note : Il faut garder à l’esprit que les types de dates sont choisis lorsque vous créez votre colonne.

Première requête avec SQL Date

Dans cet exemple, nous allons nous servir de la table suivante :

Maîtrisez la manipulation des dates en SQL (1)

Pour cette première requête, nous allons récupérer les données dont la date est égale à “2022-03-08”. Pour ce faire, il faut taper cette ligne :

SELECT * FROM ‘liste’ WHERE date=’2022-03-08’

Le résultat ressemblera à ceci :

Maîtrisez la manipulation des dates en SQL (2)

Les différentes fonctions de manipulation de SQL date

En SQL, la manipulation des dates lorsque l’on est un débutant n’est pas une tâche facile. La raison est que le format de la date de votre table doit être le même que celui de la date d’entrée des données. Généralement, au lieu d’utiliser le format Date, on utilise plutôt DateTime. Dans cette partie, nous allons voir les différentes fonctions pour manipuler la date.

Fonctions générales

Maîtrisez la manipulation des dates en SQL (3)

DATE()

La fonction DATE() renvoie uniquement la partie date des éléments présents dans la colonne spécifiée. Sa syntaxe est la suivante :

SELECT DATE (Nom_colonne) FROM nom_tableau;
Maîtrisez la manipulation des dates en SQL (4)

NOW()

Cette fonction renvoie la date et heure actuelle au format YYYYMMDDHHMMSS ou AAA-MM-JJ:HH:SS. Pour obtenir cela, il faut taper la requête suivante :

SELECT now();
Maîtrisez la manipulation des dates en SQL (5)

CURDATE()

Cette fonction renvoie la date actuelle au format YYYYMMDD ou AAA-MM-JJ. La syntaxe est la suivante :

SELECT CURDATE();

CURTIME()

Cette fonction renvoie à l’heure actuelle au format HHMMSS ou HH-MM-SS. Voici sa syntaxe :

SELECT CURTIME();
Maîtrisez la manipulation des dates en SQL (7)

DATE_ADD(date, INTERVAL expr type)

Avec cette fonction, vous avez la possibilité d’ajouter un intervalle de temps à une date. Vous pouvez par exemple ajouter une microseconde, une seconde, une heure, un jour, une semaine, une année, etc.

SELECT DATE_ADD(DATE_debut, INTERVAL 10 YEARS) FROM echan
Maîtrisez la manipulation des dates en SQL (8)

DATE_SUB(date, INTERVAL expr type)

Ici, vous avez la possibilité de soustraire un intervalle de temps à une date. Vous pouvez ajouter une microseconde, une seconde, une heure, un jour, une semaine, une année, etc. comme dans la fonction précédente.

SELECT DATE_SUB(DATE_debut, INTERVAL 10 YEARS) FROM echan
Maîtrisez la manipulation des dates en SQL (9)

DATEDIFF(date1,date2)

Cette fonction permet de déterminer le nombre de jours entre deux dates distinctes.

SELECT DATEDIFF(NOW(), Date_debut) AS "Nombre jours passés" FROM echan;
Maîtrisez la manipulation des dates en SQL (10)

Fonctions permettant de retourner des parties de date et d’heure

DATEPART()

La syntaxe utilisée dans cette fonction est la suivante :

DATEPART( datepart, date )

Cette fonction donne en retour un entier qui spécifie la partie d’une date. L’argument datepart spécifie la partie de la date que la fonction doit retourner. Voici la liste de tous les arguments datepart valide :

datepartAbréviations
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw
hourhh
minutemi, n
secondss, s
millisecondms
microsecondmcs
nanosecondns
tzoffsettz
iso_weekisowk, isoww

Prenons l’exemple ci-dessous :

SELECT DATEPART(ww,'2022-03-3012:15:32.1234567 +05:10');
Maîtrisez la manipulation des dates en SQL (11)

Ici, la fonction renvoie le nombre de semaines depuis janvier qui est 14.

Voici les résultats pour les autres arguments:

datepartValeur retournée
year, yyyy, yy2022
quarter, qq, q4
month, mm, m03
dayofyear, dy, y303
day, dd, d30
week, wk, ww44
weekday, dw3
hour, hh12
minute, n15
second, ss, s32
millisecond, ms123
microsecond, mcs123456
nanoosecond, ns123456700
tzoffset, tz310
iso_week, isowk, isoww44

DATENAME()

Voici la syntaxe de cette fonction :

DATENAME( datepart, date )

Cette fonction donne en retour une chaîne de caractère qui spécifie la partie d’une date. L’argument datepart spécifie la partie de la date que la fonction doit retourner.

Prenons cette requête comme exemple :

SELECT DATENAME(ww,'2022-03-30 12:15:32.1234567 +05:10');
Maîtrisez la manipulation des dates en SQL (12)

Fonctions permettant de donner en retour des valeurs de date et d’heure selon des critères spécifiques

DATEFROMPARTS()

Sa syntaxe est la suivante :

DATEFROMPARTS ( year, month, day )

Cette fonction donne en retour la valeur d’une date pour l’année, le mois et le jour spécifié.

Maîtrisez la manipulation des dates en SQL (13)

DATETIME2FROMPARTS()

Voici sa syntaxe :

DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds )

Cette fonction retourne la valeur datetime pour la date et l’heure indiquée.

DATETIMEOFFSETFROMPARTS()

Voici sa syntaxe :

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Cette fonction retourne la valeur datetimeoffset pour la date et l’heure indiquée avec une précision ainsi que les décalages indiqués.

SMALLDATETIMEFROMPARTS()

La syntaxe est la suivante :

SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute )

Cette fonction retourne la valeur smalldate pour la date et l’heure indiquée.

Fonctions permettant de définir ou de retourner des fonctions de format de session

SET DATEFIRST

Voici la syntaxe pour cette fonction :Voici la syntaxe pour cette fonction :

SET DATEFIRST { number | @number_var } 

Cette fonction ajoute au premier un entier compris entre 1 à 7 au premier jour de la semaine.

SET DATEFORMAT

La syntaxe est la suivante :

SET DATEFORMAT { format | @format_var }

Cette fonction va donner l’ordre des composants de la date comme suit :

jour/mois/année

SQL DATE_FORMAT

La fonction DATE_FORMAT permet de formater les dates au format de votre choix.

La syntaxe est la suivante :

SELECT DATE_FORMAT(date,format)

Les paramètres date et format correspondent respectivement à une donnée de type Date ou DateTime et au format que prendra la date. Le format est une chaîne de caractères qui commence toujours par “%”.

Voici quelques formats récurrents :

  • %b : donne l’abréviation du mois sous la forme suivante : Jan, Fev, …, Dec ;
Maîtrisez la manipulation des dates en SQL (14)
  • %a : donne l’abréviation du jour sous forme de : Sun, Mon, … Sat ;
  • %e : retourne le numéro du jour du mois;
Maîtrisez la manipulation des dates en SQL (15)
  • %f : retourne les microsecondes (000000…999999) ;
  • %D : retourne le numéro du jour sous la forme anglaise comme ceci : 0th, 1st, 2nd, 3rd, etc. ;
  • %d : retourne le numéro du jour du mois, mais sous 2 décimales. Par exemple, si c’est 4, il retournera 04 ;
  • %H : retourne l’heure sous le format 00…23 ;
  • %h : retourne l’heure sous le format 01…12 ;
  • %I : retourne l’heure sous le format 01…12%i : minutes (00…59) (numérique) ;
  • %j : retourne le jour de l’année sous le format 001…366 ;
  • %k :retourne l’heure sous le format 0…23 ;
  • %l :retourne l’heure sous le format 1…12) ;
  • %M : retourne le nom complet du mois (January…December) ;
  • %m : retourne le numéro du mois (00…12) (numérique) ;
  • %T : retourne l’heure au format 24 heures (hh:mm:ss) ;
  • %U : retourne le numéro de la semaine qui a dimanche comme le premier jour de la semaine ;
  • %u : retourne le numéro de la semaine qui a lundi comme le premier jour de la semaine ;
  • %W :retourne le nom du jour de la semaine ;
  • %w : retourne le numéro du jour de la semaine. 0 correspond à dimanche, 1 correspond à lundi, … 6 correspond à samedi ;
  • %X : numéro de la semaine de l’année, pour lequel le dimanche est le premier jour de la semaine, numérique, 4 digits ; utilisé avec %V ;
  • %X : retourne le numéro de la semaine de l’année dont le dimanche est le premier jour de la semaine ;
  • %x : retourne le numéro de la semaine de l’année dont le lundi est le premier jour de la semaine ;
  • %Y : retourne l’année, en 4 bytes, c’est-à-dire sous format YYYY (2018) ;
  • %y : retourne l’année, en 2 bytes, c’est-à-dire sous format YY (18) ;

Il faut savoir que vous pouvez combiner plusieurs formatages présents sur la liste ci-dessus pour obtenir le format de date que vous souhaitez.

SELECT DATE_FORMAT("2018-09-24 22:21:20", "%W %M %e %Y");
Maîtrisez la manipulation des dates en SQL (16)

Pour résumer, en gestion de base de données la date est cruciale, car les données entrées dans une base de données sont à des heures et dates précises. Donc, il est nécessaire de connaître les fonctions qui peuvent vous aider à manipuler les dates dans une base de données.

Voilà, nous terminons ce mini tutoriel ici. Maintenant, vous connaissez toutes les fonctions nécessaires à la manipulation des dates. Vous pouvez donc traiter cette partie des bases de données sans aucun souci. Vous souhaitez apprendre d’autres langages ou technologies sur la programmation informatique, nous vous invitons à parcourir notre blog. Nous vous proposons également de télécharger ce tutoriel gratuit sur la programmation Scala pour la Data.

0 Partages

As an expert in database management and SQL, I bring a wealth of experience and knowledge in handling date and time functions within SQL databases. My expertise extends across various database systems, including MySQL and SQL Server, allowing me to provide comprehensive insights into the concepts discussed in the article.

The article primarily focuses on the importance of handling dates and times in SQL, and it introduces various functions available in MySQL and SQL Server for manipulating date-related data. Let's break down the key concepts and functions highlighted in the article:

  1. Date and Time Data Types in MySQL and SQL Server:

    • MySQL:

      • DATE - format AAAA-MM-JJ
      • DATETIME - format AAAA-MM-JJ HH:MI:SS
      • TIMESTAMP - format AAAA-MM-JJ HH:MI:SS
      • YEAR - format AAAA or AA
    • SQL Server:

      • DATE - format AAAA-MM-JJ
      • DATETIME - format AAAA-MM-JJ HH:MI:SS
      • SMALLDATETIME - format AAAA-MM-JJ HH:MI:SS
      • TIMESTAMP - format unique number
  2. Executing SQL Queries:

    • The article provides an example SQL query to retrieve data where the date is equal to "2022-03-08" from a table named 'liste.'
  3. General Date Manipulation Functions:

    • DATE(): Returns only the date part of the specified column.
    • NOW(): Returns the current date and time.
    • CURDATE(): Returns the current date.
    • CURTIME(): Returns the current time.
    • DATE_ADD() and DATE_SUB(): Add or subtract an interval of time to/from a date.
  4. Calculating Date Differences:

    • DATEDIFF(date1, date2): Determines the number of days between two distinct dates.
  5. Extracting Parts of Date and Time:

    • DATEPART() and DATENAME(): Retrieve specific parts of a date, such as year, month, day, etc.
  6. Functions for Returning Specific Date and Time Values:

    • DATEFROMPARTS(), DATETIME2FROMPARTS(), DATETIMEOFFSETFROMPARTS(), and SMALLDATETIMEFROMPARTS(): Return date or datetime values based on specified components.
  7. Setting Date and Time Formats:

    • SET DATEFIRST: Adds an integer (1 to 7) to the first day of the week.
    • SET DATEFORMAT: Specifies the order of date components.
  8. Formatting Date Output:

    • DATE_FORMAT(): Formats dates according to specified patterns in MySQL.
  9. Examples of Date Formatting:

    • The article provides examples of common date formats using the % syntax.

In conclusion, the article serves as a comprehensive guide to handling date and time in SQL, covering various functions and concepts essential for database management. It not only introduces fundamental concepts but also delves into practical examples to enhance the understanding of date manipulation in SQL databases.

Maîtrisez la manipulation des dates en SQL (2024)
Top Articles
Latest Posts
Article information

Author: Moshe Kshlerin

Last Updated:

Views: 6230

Rating: 4.7 / 5 (77 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Moshe Kshlerin

Birthday: 1994-01-25

Address: Suite 609 315 Lupita Unions, Ronnieburgh, MI 62697

Phone: +2424755286529

Job: District Education Designer

Hobby: Yoga, Gunsmithing, Singing, 3D printing, Nordic skating, Soapmaking, Juggling

Introduction: My name is Moshe Kshlerin, I am a gleaming, attractive, outstanding, pleasant, delightful, outstanding, famous person who loves writing and wants to share my knowledge and understanding with you.