SQLShack (Français)

Fonctions de format de date SQL comme DateDiff La fonction SQL et la fonction SQL DateAdd sont souvent utilisées par les administrateurs de base de données, mais beaucoup dentre nous nont jamais pris le temps de bien comprendre ces fonctionnalités extrêmement utiles. Pour les professionnels qui débutent avec SQL Server, ces fonctions sont parmi les premières à se familiariser. Jespère donc que cet article aura un petit quelque chose pour tout le monde à travers le spectre des compétences

Lun des types de données les plus intéressants pris en charge dans le monde des bases de données relationnelles est DateTime. Dans cet article, nous allons examiner lutilisation des types de données date / heure dans SQL Server. Nous comprendrons les bases du type de données date-heure et nous verrons également divers exemples sur la façon dinterroger les champs date-heure à laide de fonctions intégrées dans SQL Server pour manipuler les données, transformer les valeurs date-heure et dans quelques cas, effectuez des opérations arithmétiques.

Commençons par jeter un œil à quelques fonctions de format de date et dheure SQL populaires.

Par défaut, SQL Server prend en charge les langues qui sont pris en charge par le système dexploitation Windows. Selon les paramètres régionaux et de classement lorsque vous effectuez linstallation de SQL Server, laffichage du format de date SQL peut être différent. Le type de données que vous allez lire est déterminé en fonction des paramètres régionaux et du paramètre de classement SQL Server.

Dans SQL Server, le type de données DATE a deux formats de langage neutre par défaut

  1. YYYYMMDD

    Lexemple suivant, HumanResource .La table des employés est interrogée pour voir le format de date SQL des valeurs HireDate

    1
    2
    3
    4
    5
    6

    UTILISEZ AdventureWorks2014;
    GO
    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee;
    GO

    Maintenant, interrogez la colonne HireDate en utilisant un format de langage neutre. Dans la requête, nous transmettons une valeur entière composée de lannée 2008; mois, 12 et 7e jour.

    1
    2
    3

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = « 20081207 »;

    Remarque: Cela signifie essentiellement que la valeur dentrée est numérique; le moteur SQL le convertit en interne et aboutit en fait à une valeur de caractère. Ainsi, il est entouré de guillemets simples

  2. MM-JJ-AAAA (format basé aux États-Unis)

    Dans ce format de date SQL, le La colonne HireDate est alimentée avec les valeurs «MM-JJ-AAAA». Ce nest pas un format entier. Exécutons la même requête avec le nouveau format de date SQL de la valeur dentrée «12 -07-2008» dans la colonne HireDate. Alors, exécutons la requête suivante et vérifions la sortie. La sortie est le même ensemble de cinq enregistrements.

    1
    2
    3
    4

    SELECT HireDate, BusinessEntityID, LoginID, JobTitle
    FROM HumanResources.Employee
    WHERE HireDate = « 07/12/2008 »;
    GO

    Remarque: Les valeurs de format de langage neutre sont implicites et SQL Server effectuera la conversion nécessaire. Tout autre format de date SQL nécessite une conversion correcte des opérandes ou / et des valeurs.

Les exemples suivants affichent un message derreur dû à une mauvaise utilisation du format de date SQL.

1
2
3

SELECT HireDate, BusinessEntityID, LoginID, JobTitle
FROM HumanResources.Employee
WHERE HireDate = « 25-12-2008 « ;

Maintenant, lopérande et ses valeurs sont tous deux convertis au format standard 103. Vous pouvez vous référer ici pour plus dinformations sur les fonctions CAST et Convert.Lexemple suivant renvoie toutes les lignes de lemployé où HireDate 25 -12-2008

Maintenant, allons Commencez à jeter un œil à certaines des fonctions de date que SQL Server met à notre disposition et ces fonctions de date nous permettent de travailler avec les différentes parties des dates et même de manipuler certaines des fonctionnalités avec lesquelles nous pouvons travailler en termes de dates.

Examinons la fonction SQL DATEPART. Cette fonction renvoie une valeur entière à partir de la colonne de date spécifiée

Interrogez la colonne HireDate pour ne renvoyer que la partie année de la date

Lexemple suivant génère une colonne de sortie entière nommée, et ceci devrait renvoyer uniquement les valeurs de lannée

1
2
3

SELECT DATEPART (YEAR, HireDate) AS
FROM HumanResources.Employee;
GO

Interroger la date dembauche colonne pour ne renvoyer que la partie mois de la date

Lexemple suivant génère une colonne de sortie entière nommée, qui ne doit renvoyer que les valeurs du mois

1
2

SELECT DATEPART (MOIS, HireDate) AS
DE HumanResources.Employee;

Interrogez la colonne HireDate pour ne renvoyer que la partie Quarter de la date

Lexemple suivant génère une colonne de sortie entière nommée, qui ne doit renvoyer que les valeurs du mois

1
2
3

SELECT DATEPART (QUARTER, HireDate) AS
FROM HumanResources.Employee;
GO

Lexemple suivant renvoie les détails des ventes pour le jour spécifique du champ orderDate. Lexemple montre également lutilisation de la fonction SQL DATEPART et ses quelques arguments associés.

Linstruction SELECT sélectionne DATEPART, qui est le nom de la fonction, et prend deux arguments entre parenthèses. Tout dabord, largument datepart et le second, lexpression de date.

Jetons un œil à lutilisation de la fonction SQL DATENAME. Ceci est similaire à une fonction SQL DATEPART, mais elle renvoie une chaîne de caractères à partir du champ de date spécifié.

Ensuite, jetons un coup dœil aux fonctions déterministes qui retournent des parties de date et dheure sous forme de valeur entière. Lexemple suivant renvoie des valeurs entières du champ OrderDate pour les fonctions YEAR et MONTH correspondantes.

Le résultat est une valeur agrégée du TotalSales basé sur les ventes mensuelles.

Prenons maintenant un aperçu de quelques autres fonctions différentes. Et celui que nous allons examiner s’appelle DATEDIFF. La fonction SQL DATEDIFF renvoie une valeur entière signée qui nous permet de déterminer le temps écoulé entre deux dates.

Jouons avec la requête pour utiliser différentes parties de date pour voir les résultats.

Lexemple suivant renvoie les parties de temps entre les deux champs DateHeure. Dans cet exemple, les heures, minutes et secondes entre les valeurs DateHeure sont calculées à laide de la fonction SQL DATEDIFF

Comment pour utiliser la fonction SQL DATEDIFF dans la clause where

Lexemple suivant renvoie tous les employés qui travaillent avec lorganisation depuis plus de 10 ans. La logique conditionnelle de la colonne HireDate est comparée à plus de 120 mois est mentionnée dans la clause where.

1
2
3
4

SELECT *
FROM HumanResources.Employee
WHERE DATEDIFF (MONTH, HireDate, GETDATE ()) > 120;
GO

Comment utiliser la fonction SQL DateDiff avec une fonction Aggregate

Lexemple suivant renvoie le nombre dannées entre la première date dembauche et la date de la dernière location. Dans ce cas, nous recherchons la fonction dagrégation HireDate minimale et HireDate maximale utilisées comme paramètres dentrée pour la fonction SQL DATEDIFF.Avec ces valeurs, on pouvait facilement trouver le nombre dannées écoulées entre la première embauche et la dernière embauche.

1
2

SELECT DATEDIFF (YEAR, MIN (HireDate), MAX (HireDate)) No_Of_Years
DE HumanResources.Employee;

Jetons un coup dœil à la fonction SQL DATEADD. Les fonctions ajoutent ou soustraient la valeur à la partie de date spécifiée et renvoient la valeur modifiée de la partie de date.

Examinons lexemple suivant. La valeur 1 est ajoutée aux différentes parties de date et la valeur -1 est ajoutée à la partie de date de lheure et -30 sont ajoutées à la partie de date des minutes.

Dans la sortie, nous pouvons voir que la valeur est opérée sur le GETDATE () selon la partie de date définie.

Remarque: les fonctions SQL DATEADD et DATEDIFF peuvent être utilisées dans SELECT, Clauses WHERE, HAVING, GROUP BY et ORDER BY.

Datadiff vs Datediff_BIG

Cest tout pour le moment sur cet article sur le format de date SQL…

Conclusion

Jusquà présent, nous avons vu des fonctions de format de date SQL très importantes telles que DATEPART, DATENAME, YEAR, MONTH et DAY, avec un accent particulier sur la fonction SQL DATEADD et la fonction SQL DATEDIFF. Les fonctions de format de date SQL dans SQL Server sont vraiment puissantes et aident vraiment à fournir des analyses de données et des rapports percutants. Dans certains cas, il sagit dajuster les paramètres de classement, les paramètres de localisation, simplement réajuster le flux dentrée de la valeur du texte ou la correction apportée à la source de données suffirait au problème de date et heure.

Il est recommandé dutiliser le format de langage neutre car il fonctionne mieux dans la plupart des cas. Enfin, nous voyons la différence entre la fonction SQL DATEDIFF et la fonction SQL DATEDIFF_BIG. Jespère que cet article vous plaira. Si vous avez des questions, nhésitez pas à commenter ci-dessous

  • Auteur
  • Messages récents
Je suis un technologue en bases de données ayant plus de 11 ans dexpérience pratique et riche sur les technologies de bases de données. Je suis Microsoft Certified Professional et soutenu par un diplôme en Master of Computer Application.
Ma spécialité réside dans la conception de & implémentation de solutions de haute disponibilité et de migration de base de données multiplateforme. Les technologies actuellement utilisées sont SQL Server, PowerShell, Oracle et MongoDB.
Afficher tous les articles de Prashanth Jayaram

Derniers articles de Prashanth Jayaram (voir tout)
  • Un aperçu rapide de laudit de base de données en SQL – 28 janvier 2021
  • Comment configurer Azure Data Sync entre les bases de données Azure SQL et SQL Server sur site – 20 janvier 2021
  • Comment effectuer des opérations dimportation / exportation de base de données Azure SQL à laide de PowerShell – 14 janvier , 2021

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *