Maison >base de données >tutoriel mysql >Comment générer efficacement des séries chronologiques entre les dates dans PostgreSQL ?

Comment générer efficacement des séries chronologiques entre les dates dans PostgreSQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-21 16:51:08264parcourir

How to Efficiently Generate Time Series Between Dates in PostgreSQL?

Méthode de génération de séries temporelles d'intervalles de dates PostgreSQL

Lorsque PostgreSQL traite des données de séries temporelles, il est souvent nécessaire de générer une série de dates entre deux dates données. Une méthode courante consiste à utiliser la fonction generate_series().

<code class="language-sql">select date '2004-03-07' + j - i as AllDate 
from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i,
     generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j</code>

Cependant, cette approche rencontre parfois des limites lorsqu'il s'agit de dates qui s'étendent sur des années différentes. Pour résoudre efficacement cette situation, considérez ce qui suit :

<code class="language-sql">SELECT date_trunc('day', dd):: date
FROM generate_series
        ( '2007-02-01'::timestamp 
        , '2008-04-01'::timestamp
        , '1 day'::interval) dd
        ;</code>

Cette requête génère une plage de dates entre les horodatages donnés, les convertissant dans un format de date reconnu avant de les renvoyer. Il maintient l'exactitude même lorsque deux dates s'étendent sur plusieurs années.

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