Maison > base de données > tutoriel mysql > Comment puis-je générer des séries de dates précises sur plusieurs années dans PostgreSQL ?

Comment puis-je générer des séries de dates précises sur plusieurs années dans PostgreSQL ?

Barbara Streisand
Libérer: 2025-01-21 17:01:09
original
248 Les gens l'ont consulté

How Can I Generate Accurate Date Series Across Multiple Years in PostgreSQL?

Générer avec précision des séries de dates PostgreSQL s'étalant sur plusieurs années

La fonction generate_series est utile lors de la génération d'une séquence de dates entre deux dates données dans PostgreSQL. Cependant, comme le montre la requête ci-dessous, elle peut ne pas fournir de résultats précis lorsque les dates s'étendent sur différentes années :

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
Copier après la connexion

Pour résoudre ce problème, une solution plus précise peut être utilisée, qui implique la conversion des horodatages :

SELECT date_trunc('day', dd):: date
FROM generate_series
        ( '2007-02-01'::timestamp 
        , '2008-04-01'::timestamp
        , '1 day'::interval) dd
        ;
Copier après la connexion

Dans cette requête, la fonction date_trunc est utilisée pour extraire la partie date de l'horodatage généré, garantissant des résultats précis même si les dates s'étendent sur des années différentes. La fonction generate_series crée une séquence d'horodatages espacés d'un jour, puis la fonction date_trunc reconvertit ces horodatages en dates, fournissant ainsi une séquence de dates fiable.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal