IT Log

[Presto] DATE_ADD, DATE_DIFF 본문

SQL/Presto

[Presto] DATE_ADD, DATE_DIFF

newly0513 2021. 4. 7. 15:32
728x90
반응형

 


Unit 설명
millisecond 밀리초
second
minute
hour
day
week
month
quarter 분기
year

DATE_ADD

  • 사용법 : DATE_ADD(unit, value, timestamp)
  • timestamp에는 'DATE, TIME, TIME WITH TIME ZONE, TIMESTAMP, TIMESTAMP WITH TIME ZONE' 형식이 사용 가능
SELECT DATE_ADD('MONTH', 5, DATE '2021-01-01') -- 5개월 ADD
2021-06-01 -- 조회 결과



SELECT DATE_ADD('MINUTE', 3, TIME '05:43:03.456') -- 3분 ADD
05:46:03.456 -- 조회 결과



SELECT DATE_ADD('YEAR', 5, TIMESTAMP '2021-08-22 03:04:05.321') -- 5년 ADD
2026-08-22 03:04:05.321 -- 조회 결과


-- 오류 예시 --
-- 1. Data type이 TIMESTAMP형식이 아닌 경우
SELECT DATE_ADD('MONTH', 5, '2021-01-01') 또는 SELECT DATE_ADD('MONTH', 5, 2021-01-01)

-- 2. Unit과 TIMESTAMP형식이 맞지 않는 경우
SELECT DATE_ADD('MONTH', 5, TIME '05:43:03.456') 또는 SELECT DATE_ADD('MINUTE', 5, DATE '2021-01-01')

 

 

DATE_DIFF

  • 사용법 : DATE_DIFF(unit, timestamp1, timestamp2)
  • timestamp에는 'DATE, TIME, TIME WITH TIME ZONE, TIMESTAMP, TIMESTAMP WITH TIME ZONE' 형식이 사용 가능
  • DATE_DIFF는 'timestamp2' - 'timestamp1'로 timestamp2가 과거의 시간 또는 일자인 경우 값이 -로 출력
SELECT DATE_DIFF('MONTH', DATE '2021-01-01', DATE '2021-05-01') -- 월
4 -- 조회 결과


SELECT DATE_DIFF('MINUTE', TIME '05:43:03.456', TIME '05:53:03.456') -- 분
10 -- 조회 결과


SELECT DATE_DIFF('YEAR', TIMESTAMP '2021-08-22 03:04:05.321', TIMESTAMP '2025-08-22 03:04:05.321') -- 년
4 -- 조회 결과


-- 오류 예시 --
-- 1. Data type이 TIMESTAMP형식이 아닌 경우
SELECT DATE_DIFF('MONTH', '2021-01-01', '2021-05-01')
또는
SELECT DATE_DIFF('MONTH', DATE '2021-01-01', '2021-05-01')

-- 2. Unit과 TIMESTAMP형식이 맞지 않는 경우
SELECT DATE_DIFF('MONTH', TIME '05:33:03.456', TIME '05:43:03.456')

 

728x90
반응형

'SQL > Presto' 카테고리의 다른 글

[Presto] REGEXP Functions  (0) 2021.04.07
[Presto] Data type  (0) 2021.04.07
Comments