데이터 분석 SQL Fundamentals - Date, Timestamp, Interval
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)
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', ~) : 해당 주의 첫째날(월요일) 날짜를 반환한다.