Maison > base de données > tutoriel mysql > Comment générer des plages de dates dans SQL Server ?

Comment générer des plages de dates dans SQL Server ?

Barbara Streisand
Libérer: 2025-01-15 07:44:44
original
271 Les gens l'ont consulté

How to Generate Date Ranges in SQL Server?

Génération de plages de dates dans SQL Server

Fréquemment, les administrateurs de bases de données doivent remplir les tables avec des plages de dates. Cet article présente des méthodes SQL Server efficaces pour y parvenir.

Une technique courante utilise une ROW_NUMBER() sous-requête pour générer une séquence numérique :

<code class="language-sql">DECLARE @StartDate DATE = '20110901';
DECLARE @EndDate DATE = '20111001';

SELECT DATEADD(DAY, nbr - 1, @StartDate)
FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY c.object_id) AS nbr
    FROM sys.columns c
) nbrs
WHERE nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate);</code>
Copier après la connexion

Cette sous-requête crée une série de nombres, puis DATEADD() incrémente la date de début de chaque nombre pour produire la plage de dates.

Une alternative plus performante utilise un tableau de pointage préexistant (si disponible) :

<code class="language-sql">SELECT DATEADD(DAY, nbr, @StartDate)
FROM nbrs
WHERE nbr <= DATEDIFF(DAY, @StartDate, @EndDate);</code>
Copier après la connexion

Cela évite les requêtes récursives, offrant un avantage de vitesse significatif lorsque vous traitez de grandes plages de dates. Le tableau de pointage contient une séquence de nombres pré-générées, éliminant ainsi le besoin de génération de numéros à la volé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!

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