Maison >base de données >tutoriel mysql >Comment générer une liste de dates entre deux dates dans MySQL et SQL Server ?

Comment générer une liste de dates entre deux dates dans MySQL et SQL Server ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-22 04:42:08345parcourir

How to Generate a List of Dates Between Two Dates in MySQL and SQL Server?

Générer une liste de dates entre deux dates

MySQL fournit des fonctions standard pour récupérer une liste de dates dans une plage de dates spécifiée. Les étapes sont les suivantes :

1. Créer une procédure stockée :

Créez une procédure stockée pour générer la plage de dates requise. make_intervals Les procédures stockées peuvent créer différents types d'intervalles, notamment des jours, des minutes et des secondes.

2. Code de processus :

<code class="language-sql">CREATE PROCEDURE make_intervals(
    startdate timestamp, 
    enddate timestamp, 
    intval integer, 
    unitval varchar(10)
)
BEGIN
    -- ... (存储过程代码,请参考答案中的完整代码)
END;</code>

3. Exemple de génération d'intervalle :

Pour générer une liste de dates entre le 01/01/2009 et le 10/01/2009, exécutez la commande suivante :

<code class="language-sql">call make_intervals('2009-01-01 00:00:00', '2009-01-10 00:00:00', 1, 'DAY');</code>

4. Connectez-vous avec vos données :

Rejoignez la plage de dates générée (située dans la time_intervals table temporaire) avec votre tableau de données pour agréger les données selon vos besoins.

Exemple de scénario de données :

De même, vous pouvez créer une fonction pour SQL Server. Cette fonction produit des résultats similaires à ceux mentionnés dans la question :

<code class="language-sql">CREATE FUNCTION GetDateList(@StartDate DATETIME, @EndDate DATETIME, @Interval INT, @Unit VARCHAR(10))
RETURNS TABLE
AS
BEGIN
    DECLARE @ThisDate DATETIME = @StartDate;
    WHILE @ThisDate <= @EndDate
    -- ... (函数代码,请参考答案中的完整代码)
END;</code>

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