데이터 분석 SQL Fundamentals - Date, Timestamp, Interval

yshjft·2023년 2월 12일
0

Date, Timestamp, Interval

Date, Timestamp, Time, Interval

  • Date : 년월일
  • Timestamp : 년월일 + 시간
  • Time : 시간
  • Interval : 기간, 음수와 양수 모두 나올 수 있다.

문자열을 Date, Timestamp로 변환

  • to_date(문자열, 문자열의 포맷팅)
  • to_timestamp(문자열, 문자열의 포맷팅)

Date, Timestamp을 문자열로 변환

  • to_char(Date, 문자열 출력 포맷팅)

편리한 형변환

  • ::date : date로 변환
  • ::timestamp : timestamp로 변환
  • ::text : text로 변환

년,월,일,시간,분,초 추출

  • date_part('year', ~)
  • date_part('month', ~)
  • date_part('day', ~)
  • date_part('hour', ~)
  • date_part('minute', ~)
  • date_part('second', ~)

Interval 활용

  • Date 타입에 숫자값 더하거나 빼면 일자를 더하거나 빼서 날짜를 계산
  • 하지만 Timestamp는 안됨
    • Interval을 이용해야 한다.
    • ex) + interval '7 hour', + interval '2 days 7 hours 30 minutes'
  • date - date : ret 정수
  • timestamp - timestamp : ret interval

현재 시간

  • now(), current_timestamp : ms까지 표현
  • current_date : 날짜만
  • current_time : 시가만 표현(초까지만 표현)

Interval 구하기

  • age(date)
    • now() - date
    • 31일인 경우까지 고려하여 계산
  • justify_interval(date)
    • 모든 달을 30일로 가정하여 계산

trunc

  • trunc(99.9999, 2) : 99.99 반환 (소수점 아래 두째자리 까지만 사용)
  • date_trunc('day', ~) : day 까지만 살림
  • date_trunc의 결과는 무조건 timestamp이다.
  • date_trunc('month', ~) : 1일까지만 나온다.
  • date_trunc('year', ~) : 1월 1일까지만 나온다.
  • date_trunc('week', ~) : 해당 주의 첫째날(월요일) 날짜를 반환한다.
profile
꾸준히 나아가자 🐢

0개의 댓글