Maison > base de données > tutoriel mysql > Comment générer une série de dates dans MySQL ?

Comment générer une série de dates dans MySQL ?

Barbara Streisand
Libérer: 2025-01-14 09:36:43
original
867 Les gens l'ont consulté

How to Generate a Date Series in MySQL?

Générer une séquence de dates dans MySQL

Question :

Comment créer une série de dates dans MySQL, similaire à la fonction generate_series() dans PostgreSQL ?

Réponse :

MySQL n'a pas d'équivalent direct à generate_series(), mais nous pouvons obtenir des résultats similaires en suivant ces étapes :

  1. Créez un tableau temporaire contenant des nombres consécutifs.
  2. Utilisez la fonction adddate() pour ajouter l'intervalle de date correspondant à chaque numéro.
  3. Utilisez la fonction date_format() pour formater la date générée afin qu'elle soit conforme au format souhaité.

Voici un exemple de requête permettant de créer une plage de dates allant du 1er janvier 2011 au 31 décembre 2011 :

<code class="language-sql">SELECT 
    DATE_FORMAT(
        ADDDATE('2011-01-01', @num := @num + 1), 
        '%Y-%m-%d'
    ) AS 日期
FROM 
    任意表,    
    (SELECT @num := -1) AS num
LIMIT 
    365;</code>
Copier après la connexion

Dans cette requête :

  • 任意表 est une table temporaire contenant une ou plusieurs lignes (n'importe quelle table peut être utilisée, car seul le nombre de lignes est utilisé).
  • @num := @num 1 Crée une séquence de nombres consécutifs commençant à 0.
  • ADDDATE('2011-01-01', @num := @num 1) Ajoutez l'intervalle de date correspondant à chaque numéro.
  • DATE_FORMAT() Formatez la date générée dans le format souhaité.
  • LIMIT 365 Précise le nombre de dates à générer (365 pour les années non bissextiles).

Cette méthode nous permet de générer des séquences de dates dans MySQL sans avoir besoin d'une table de calendrier séparée. Notez que 任意表 peut être remplacé par n'importe quelle table existante ou utilisé pour créer des lignes de données temporaires. Il s'agit d'une solution de contournement car MySQL lui-même ne fournit pas de fonctions directes comme PostgreSQL SELECT 1 UNION ALL SELECT 1 .... generate_series

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