PostgreSQL에서 비연속 연도에 대한 시계열 생성
PostgreSQL에서 두 날짜 간의 완전한 시계열을 생성하려면 특히 여러 해에 걸친 날짜를 처리할 때 신중한 고려가 필요합니다. generate_series
와 함께 extract(doy)
을 사용하는 일반적인 방법은 이러한 시나리오에서 부정확한 결과를 생성할 수 있습니다.
보다 강력한 접근 방식
우수한 솔루션은 generate_series
및 date_trunc
과 함께 PostgreSQL의 interval
기능을 활용합니다. 이 기술은 연도에 관계없이 모든 날짜 범위에 걸쳐 시계열을 안정적으로 생성합니다.
다음 쿼리는 이 향상된 방법을 보여줍니다.
<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>
다음은 분석입니다.
generate_series('2007-02-01'::timestamp, '2008-04-01'::timestamp, '1 day'::interval)
: 지정된 시작 날짜와 종료 날짜 사이에 하루씩 증가하는 일련의 타임스탬프를 생성합니다.date_trunc('day', dd)
: 이 함수는 타임스탬프를 매일의 시작 부분으로 자르고 시간 구성 요소를 제거합니다.::date
: 더 깔끔한 출력을 위해 결과 타임스탬프를 date
데이터 유형으로 캐스팅합니다.이 세련된 접근 방식은 PostgreSQL 내에서 비연속 연도에 걸쳐 시계열을 생성하기 위한 정확하고 신뢰할 수 있는 방법을 제공합니다.
위 내용은 PostgreSQL에서 연속되지 않은 연도 사이의 시계열을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!