Apprenez à utiliser les fonctions de date de SQL Server

Les fonctions de date de SQL server vous fournissent un ensemble de fonctions que vous pouvez utiliser pour manipuler les dates. La fonction est utilisée pour une grande variété d’opérations telles que l’ajout de semaines à une date, le calcul de la différence entre deux dates, ou pour décomposer une date en ses parties fondamentales.

Si vous ne connaissez pas les fonctions SQL, je vous recommande de regarder avec L’Introduction aux fonctions intégrées de SQL Server.

pour tirer le meilleur parti de cela et de nos autres leçons, assurez-vous de vous entraîner en utilisant les exemples!,

Tous les exemples de cette leçon sont basés sur Microsoft SQL Server Management Studio et la base de données AdventureWorks2012. Vous pouvez commencer à utiliser ces outils gratuits en utilisant mon Guide pour commencer à utiliser SQL Server.

Introduction aux fonctions de date de SQL Server

Il existe plus de vingt-cinq fonctions différentes classées comme fonctions de date dans SQL server.

toutes les fonctions sont répertoriées sur la page fonctions de Date (Transact-SQL). Je recommanderais de visiter cette page pour en savoir plus sur chaque fonction.,

plutôt que de réitérer ce matériel, nous allons nous concentrer sur les fonctions que j’ai vues dans couramment utilisées dans les affaires.

dans les tableaux suivants, j’ai classé les fonctions et les ai codées par couleur. Le code couleur correspond au capot probable que vous utiliseriez cette fonction particulière dans un environnement professionnel. Le vert est le plus susceptible d’être utilisé, et le rouge moins.

ce n’est pas une échelle stricte, et toutes les fonctions ont une utilisation dans une analyse de rentabilisation, mais je voulais un moyen de vous aider à gagner le terrain vers les plus pertinents.,

Voici ma tentative:

DateTime Fonctions – les Plus Communs sont de Couleur Verte

les Fonctions utilisées pour obtenir la Date et l’Heure

De toutes les fonctions qui sont utilisées pour retourner la date et l’heure actuelle, la fonction GETDATE est le plus couramment utilisé de la fonction.

GETDATE

la fonction GETDATE est utilisée pour renvoyer les données et l’heure actuelles du serveur. Cette fonction devient pratique lorsque vous devez comparer les données telles que la date du dernier paiement à la date actuelle.,

la forme générale de la fonction GETDATE est

GETDATE()

Voici un exemple utilisant GETDATE

SELECT GETDATE()

qui renvoie 2015-08-09 21:55:00.477

un exemple plus utile est d’utiliser GETDATE avec DateDiff ou DATEADD. Consultez DATEDIFF pour un exemple plus complet.

fonctions pour obtenir des parties de Date

Les parties de Date font référence à divers composants d’une date tels que l’année, le mois ou le jour. Les parties date sont utilisées dans plusieurs fonctions de cette section et d’autres., Voici un tableau des parties de date que vous pouvez utiliser dans une fonction telle que DATENAME, DATEPART, DATEDIFF et DATEADD.

Datepart Valeurs

Les noms sont assez explicites. Chaque partie date correspond à une période bien connue telle que le mois ou l’heure.

DATENAME

DATENAME est une fonction très utile qui est utilisée pour renvoyer diverses parties d’une date telles que le nom du mois ou le jour de la semaine correspondant à une date particulière.,

la forme générale de DATENAME est

DATENAME(date part, value)

où la partie date correspond à une liste de parties prédéfinies et la valeur est la date avec laquelle vous travaillez.

Cette fonction renvoie une valeur de caractère.

Voici un exemple qui montre différentes parties de date en action.

en supposant que GETDATE renvoie 2015-08-10 12:56:25.313 les résultats de la requête exemple sont

DATENAME Results

remarque: il existe de nombreuses autres parties de date que vous pouvez utiliser avec datename., Vous pouvez trouver une liste complète sur le site MSDN.

Voici un exemple montrant comment vous pouvez utiliser DATANAME pour effectuer une analyse de niveau récapitulatif des commandes.

Supposons que le directeur des Ventes voudrais un résumé des ventes hebdomadaires. En utilisant la fonction DATENAME, nous pouvons fournir ces informations.

Voici le résultat

DATENAME – Avis OrderWeek est triée comme une valeur de caractère

je tiens à souligner, que si nous avons triés par année et par semaine, les semaines semblent être hors de vue., En effet, la OrderWeek renvoyée est une valeur de caractère. Pour trier numériquement, nous devons convertir le résultat en une valeur numérique.

Nous pourrions facilement convertir la valeur dans la clause ORDER BY, mais cela n’est pas nécessaire une fois que vous avez appris DATEPART

DATEPART

renvoie un entier qui représente la partie spécifiée d’une date. Il fonctionne très similaire à DATENAME, en ce sens que vous spécifiez une partie et une valeur de date, cependant, plutôt que de renvoyer une valeur de texte, telle que ‘July’, il renvoie 7.,

la forme générale de DATEPART est

DATEPART(date part, value)

où date part correspond à une liste de parties prédéfinies et la valeur est la date avec laquelle vous travaillez.

Cette fonction renvoie un entier.

Voici un exemple qui montre différentes parties de date en action.

en supposant que GETDATE renvoie 2015-08-10 12:56:25.313 les résultats de la requête exemple sont

DATEPART Results

remarque: il existe de nombreuses autres parties de date que vous pouvez utiliser avec datepart., Vous pouvez trouver une liste complète sur le site MSDN.

Nous pouvons également obtenir un résumé des totaux de ventes en utilisant DATEPART comme nous l’avons fait pour DATENAME. Voici la requête

vous remarquez que ces résultats sont triés correctement selon la semaine:

DATEPART résultats triés dans L’ordre numérique

jour, mois, année

Les fonctions jour, mois et année renvoient, en fonction d’une date fournie, le jour, le mois ou l’année sous forme d’entier.

La forme générale est la même pour tous les trois fonctions., Pour plus de brièveté, nous montrerons simplement DAY, les deux autres fonctions fonctionnent de la même manière.

Voici sa forme générale:

DAY(value)

Où la valeur est la date à laquelle vous permettant de travailler avec.

Voici un exemple rapide montrant ces fonctions en jeu

SELECT HireDate, YEAR(HireDate) as HireYear, MONTH(HireDate) HireMonth, DAY(HireDate) as HireDayFROM HumanResources.Employee

dont les résultats sont:

résultats du jour, du mois et de l’année

Vous avez peut-être remarqué que year(value) est un datepart à main courte(year, value)., Les deux renvoient le même résultat, voici une instruction SQL que vous pouvez essayer:

SELECT HireDate, YEAR(HireDate) as HireYear, DATEPART(year, HireDate) as HireYearFromDatePartFROM HumanResources.Employee

vous trouverez des équivalences similaires pour le mois et le jour.

modification et recherche de différences de Dates

DATEDIFF

la fonction DATEDIFF renvoie le nombre d’années, de mois, de semaines ou de jours entre deux dates.

la forme générale du DATEDIFF est

DATEDIFF(date part, start value, end value)

où la partie date correspond à une liste de parties date prédéfinies telles que l’année, le mois, les semaines et les jours.

la différence est calculée entre la valeur de début et la valeur de fin.,

Cette fonction peut sembler un peu compliquée, mais elle vaut vraiment la peine d’être comprise car elle a de nombreuses utilisations pratiques en SQL.

Vous pouvez l’utiliser pour calculer le nombre de jours où une facture est en souffrance, ou le nombre de jours ou de semaines entre deux dates.

prenons cet exemple:

Le Vice-président des ressources humaines veut décerner à tous les employés une récompense pour des années de service. Elle aimerait que vous produisiez un rapport de tous les employés ayant plus de dix ans de service.,

pour ce faire, nous utiliserons le rapport DATEDIFF à la fois pour afficher le nombre d’années de service et pour filtrer également ceux ayant moins de dix ans de service.

Voici le code SQL

SELECT NationalIDNumber, HireDate, DATEDIFF(year, HireDate, GETDATE()) YearsOfServiceFROM HumanResources.EmployeeWHERE DATEDIFF(year, HireDate, GETDATE()) >= 10ORDER BY YearsOfService DESC

Dont les résultats sont

DATEDIFF Résultats

DATEADD

La fonction DATEADD est utilisé pour ajouter des années, de mois, de semaines ou de jours entre une date.,

la forme générale pour DATEADD est

DATEADD(date part, number, value)

où date part correspond à une liste de parties de date prédéfinies telles que l’année, le mois, les semaines et les jours et number spécifie le nombre de parties de date à ajouter à la valeur.

si le nombre est positif, ce nombre de parties de date est ajouté à la valeur.

si le nombre est négatif, les parties de la date sont soustraites de la valeur.

Cette fonction peut sembler un peu compliquée, mais elle vaut vraiment la peine d’être comprise car elle a de nombreuses utilisations pratiques en SQL.,

Vous pouvez l’utiliser pour calculer le nombre de jours jusqu’à ce que la facture soit en souffrance, ou le nombre de jours ou de semaines dans le futur ou le passé.

prenons cet exemple:

Le Directeur des ventes a parlé au directeur de production de la vente d’articles sur le web. Ils veulent produire les vélos comme ils sont commandés. Si les vélos ont été commandés aujourd’hui, quand pourraient-ils être disponibles pour expédier au client?

Si vous regardez le tableau des produits, vous verrez qu’il y a un champ DaysToManufacture. En utilisant cela avec DATEADD en conjonction avec GETDATE (), nous pouvons calculer le nombre de jours dans le futur.,

SELECT NAME, DaysToManufacture, GETDATE() as Today, DATEADD(day, DaysToManufacture, GETDATE()) EarliestDateFROM Production.ProductWHERE DaysToManufacture > 1

The results for this are

Use DATEADD to add DAYS to a DATE

Laisser un commentaire

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