본문 바로가기

데이터베이스(DB)/PostgreSQL
[PostgreSQL] INTERVAL

// INTERVAL

- 시간 간격을 나타내는 DATA TYPE

-  날짜 및 시간 연산에 활용

- 날짜(DATE), 시간(TIME), 타임스탬프(TIMESTAMP) 타입의 데이터 연산이 가능하다.

- INTERVAL '크기 단위' 형식으로 표현한다.

INTERVAL '20 days'
INTERVAL '1 year'
INTERVAL '1 hours'
INTERVAL '30 minutes'


- 여러 단위를 이어서 사용할 수 있다.

INTERVAL '1 year 1 months 7 days'
INTERVAL '3hours 5minutes'

쿼리를 짜다 보면, 날짜를 연장하고자 할 때가 있을 것이다.

나는 사용자가 비밀번호를 3개월 뒤 변경하겠다고 선택했을 때,

비밀번호 변경 제한일자를 90일 연장하기 위해 INTERVAL을 사용하였다.

UPDATE
    USER
SET PW_CHNG_DEADLINE	= TO_CHAR(TO_DATE(PW_CHNG_DEADLINE, 'YYYYMMDD') + INTERVAL '90 days', 'YYYYMMDD') /* 비밀번호변경제한일자		*/
  , LAST_CHNG_ID	= #{lastChngId		}	/* 최종변경자ID		*/
  , LAST_CHNG_DT	= NOW()				/* 최종변경일시		*/
WHERE USER_ID 	= #{userID		}		/* 로그인ID		*/
RETURNING PW_CHNG_DEADLINE