Maison > base de données > tutoriel mysql > Comment générer une série de dates incrémentielles en T-SQL ?

Comment générer une série de dates incrémentielles en T-SQL ?

Barbara Streisand
Libérer: 2025-01-11 19:57:43
original
561 Les gens l'ont consulté

How to Generate a Series of Incrementing Dates in T-SQL?

Générer une séquence de dates en T-SQL : méthodes efficaces

Cet article explore des techniques efficaces pour créer une série de dates consécutives dans une plage spécifiée à l'aide de T-SQL, compatible avec les versions 2005 et ultérieures de SQL Server. Bien qu'une boucle WHILE soit une approche possible, elle peut être moins efficace pour des plages de dates plus larges. Une méthode supérieure utilise la spt_values table système.

Pour les plages de dates allant jusqu'à 2 047 jours, la requête T-SQL suivante fournit une solution efficace :

<code class="language-sql">DECLARE @startDate DATETIME, @endDate DATETIME;
SET @startDate = GETDATE();
SET @endDate = DATEADD(day, 100, @startDate);

SELECT DATEADD(day, number, @startDate) AS IncrementalDate
FROM (SELECT number FROM master.dbo.spt_values WHERE [type] = 'P') AS NumberSequence
WHERE DATEADD(day, number, @startDate) < @endDate;</code>
Copier après la connexion

Cette requête exploite la séquence numérique dans spt_values pour générer la série de dates. Il ajoute chaque numéro de la séquence au @startDate, créant ainsi des dates incrémentielles. La clause WHERE garantit que les dates générées se situent dans la plage souhaitée, définie par @startDate et @endDate. Cette approche évite les limitations de performances souvent associées aux WHILE méthodes de boucle itératives.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal