002 Date Interval

Date, Timestamp, Interval 다루기 #

  • Date
    • 일자로서 년, 월, 일 정보를 가짐. YYYY-MM-DD
  • Timestamp
    • 일자를 시간 정보까지 같이 가짐.  YYYY-MM-DD HH24:MI:SS
  • Time
    • 오직 시간 정보만 가짐.  HH24:MI:SS
  • Interval
    • N days HH24:MI_SS

pattern #

  • hh24
    • 하루중 시간(00-23)
  • hh12
    • 하루중 시간(01-12)
  • mi
    • 분(00-59)
  • ss
    • 초(00-59)
  • yyyy
    • 년도
  • mm
    • 월(01-12)
  • dd
    • 일(월중 일자 01-31)
  • month
    • 월 이름
  • day
    • 요일 이름
  • w
    • 월의 주(1-5)
  • ww
    • 년의 주(1-52)
  • d
    • 요일. 일요일(1) ~ 토요일(7)
  • am 또는 pm
    • AM 또는 PM 표시
  • tz
    • 시간대

interval 활용 #

  1. Date 타입에 숫자값을 더하거나/빼면 숫자값에 해당하는 일자를 더하거나/빼서 날짜 계산
  • 곱셈/나눗셈은 불가능
-- DATE 타입에 곱하기나 나누기는 할 수 없음.
SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') * 10 AS DATE_01;
  1. Timestamp타입에 숫자값을 더하거나 빼면 오류 발생
-- TIMESTAMP 연산. +7을 하면 아래는 오류를 발생.
SELECT TO_TIMESTAMP('2022-01-01 14:36:52', 'YYYY-MM-DD HH24:MI:SS') + 7;
  1. Timestamp는 interval 타입을 이용하여 연산 수행
  2. DATE 타입에 INTERVAL을 더하면 TIMESTAMP로 변환됨
SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') + INTERVAL '2 DAYS' AS DATE_01;

JUSTIFY_INTERVAL(일자) #

  • 출력 형식 : 43 years 7 mons 15 days 9 hours 3 mins 37.040751 secs

AGE(일자) #

  • 나이 계산
  • 출력 형식 : 43 years 0 mons 0 days 0 hours 0 mins 0.0 secs

실습코드 #