Maison  >  Article  >  base de données  >  Comment compter les occurrences de jours spécifiques entre deux dates en TSQL ?

Comment compter les occurrences de jours spécifiques entre deux dates en TSQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 06:13:30724parcourir

How to Count Occurrences of Specific Days Between Two Dates in TSQL?

Comptage des occurrences de jours spécifiques entre des dates dans TSQL

Lorsque vous traitez des calculs liés aux dates dans TSQL, déterminer la fréquence de jours de la semaine spécifiques peut devenir un défi. Un de ces scénarios consiste à calculer le nombre de « mardis » entre deux dates données.

Solution

Pour compter le nombre d'instances d'un jour, y compris les mardis, vous pouvez utilisez le code fourni :

<code class="tsql">declare @from datetime= '3/1/2013' 
declare @to datetime  = '3/31/2013' 


select 
 datediff(day, -7, @to)/7-datediff(day, -6, @from)/7 AS MON,
 datediff(day, -6, @to)/7-datediff(day, -5, @from)/7 AS TUE,
 datediff(day, -5, @to)/7-datediff(day, -4, @from)/7 AS WED,
 datediff(day, -4, @to)/7-datediff(day, -3, @from)/7 AS THU,
 datediff(day, -3, @to)/7-datediff(day, -2, @from)/7 AS FRI,
 datediff(day, -2, @to)/7-datediff(day, -1, @from)/7 AS SAT,
 datediff(day, -1, @to)/7-datediff(day, 0, @from)/7 AS SUN</code>

Dans ce code, vous pouvez remplacer « mardi » par n'importe quel autre jour souhaité en ajustant le code du jour correspondant (par exemple, -6 pour mardi).

En fournissant une date de début et de fin, ce code calcule le nombre d'occurrences de chaque jour au cours de cette période. Il suppose que le jour de début est le lundi (code -7) et calcule la différence entre le nombre de jours multiples de 7 (par exemple, des multiples de jours depuis lundi) entre les dates de début et de fin. Cela compte effectivement les instances de chaque jour dans la plage de dates spécifiée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn