기본적으로 interval
을 사용한다.
--PostgreSQL
select currnet_timestamp + interval '1 hour'; --interval '문자열'; 형태_
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 이 되어버린다
날짜/시간
과 int
타입의 컬럼을 계산해야할 때에는,--1. int와 interval을 곱하는 방법
select currnet_timestamp + 540 * '1 min'::interval;
--2. int와 interval 단위를 concat하는 방법
select current_timestamp + (540||' minutes')::interval;