[Oracle to PostgreSQL] 날짜/시간 계산, 시간과 Int 계산

CambleB·2022년 10월 14일
0

PostgreSQL

목록 보기
3/4

PostgreSQL에서 날짜/시간 계산

기본적으로 interval을 사용한다.

--PostgreSQL
select currnet_timestamp + interval '1 hour'; --interval '문자열'; 형태_
하지만 데이터는 언제나 내 맘 같지 않다..

Oracle에서 날짜/시간 계산

Oracle to PostgreSQL을 하다보면,
PostgreSQL에서 interval로 쓰일 컬럼값이 Oracle에서는 int인 경우가 많다.

이유는 아래처럼 시간을 계산하는 방법이 다르기 때문..

/* 현재시간 + 540분 계산 */
--Oracle
select current_timestamp + 540/24/60 from dual;

--PostgreSQL
select current_timestamp + interval '540 minutes';

이런 차이로,

Oracle에서 int로 설정된 컬럼의 데이터를
PostgreSQL에서 int/24/60 방식으로 계산했을 때
540/24/60 = 0 이 되어버린다


PostgreSQL에서 시간과 int 계산

  • 날짜/시간int 타입의 컬럼을 계산해야할 때에는,
    • '1 min'을 곱한다
    • ' minutes'를 concat한다
--1. int와 interval을 곱하는 방법
select currnet_timestamp + 540 * '1 min'::interval;

--2. int와 interval 단위를 concat하는 방법
select current_timestamp + (540||' minutes')::interval;
profile
DBA의 벨로그 🖤 (Oracle | PostgreSQL | AWS | Python ... )

0개의 댓글