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 ?
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 :
<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>
Pour résoudre ce problème, une solution plus précise peut être utilisée, qui implique la conversion des horodatages :
<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>
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!