>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 여러 해에 걸쳐 정확한 날짜 계열을 생성하려면 어떻게 해야 합니까?

PostgreSQL에서 여러 해에 걸쳐 정확한 날짜 계열을 생성하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-21 17:01:09139검색

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

다년간에 걸친 PostgreSQL 날짜 시리즈를 정확하게 생성

generate_series 함수는 PostgreSQL에서 주어진 두 날짜 사이의 날짜 시퀀스를 생성할 때 유용합니다. 그러나 아래 쿼리에서 볼 수 있듯이 날짜가 서로 다른 연도에 걸쳐 있는 경우 정확한 결과를 제공하지 못할 수 있습니다.

<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>

이 문제를 해결하려면 타임스탬프 변환을 포함하는 보다 정확한 솔루션을 사용할 수 있습니다.

<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>

이 쿼리에서는 date_trunc 함수를 사용하여 생성된 타임스탬프에서 날짜 부분을 추출하므로 날짜의 연도가 다르더라도 정확한 결과가 보장됩니다. generate_series 함수는 하루 간격으로 타임스탬프 시퀀스를 생성한 다음 date_trunc 함수는 이러한 타임스탬프를 다시 날짜로 변환하여 신뢰할 수 있는 날짜 시퀀스를 제공합니다.

위 내용은 PostgreSQL에서 여러 해에 걸쳐 정확한 날짜 계열을 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.