[12일차][SQL]타임스탬프 함수

김준석·2023년 12월 26일

타임스탬프 함수는!

현재 시간을 구하거나 날짜의 차이 등을 구할 때 사용

보통 사용자 로그를 분석할때 사용.

데이터 예시)

저장된 시간간의 시간을 구한뒤 초단위로 바꾼 뒤

클릭 후 구매까지 몇 초가 걸리는지 분석

SQL에서 날짜와 시간 다루기

  • 데이터 타입
    • STRING : ‘yyyy-mm-dd’, ‘YYYY-MM-DD HH:MM:SS’
    • DATE : yyyy-mm-dd
    • DATETIME : YYYY-MM-DD HH:MM:SS
    • TIMESTAMP : YYYY-MM-DD HH:MM:SS UTC
      • 타임존까지 고려.(UTC)

시간 관련 함수

  • NOW() : UTC 기준으로 현재 시간을 가져오는 함수, 함수가 시작된 시간을 반환
    • CURRENT_TIMESTAMP() : now함수와 동일
    • CURTIME() : 현재 시간 반환
    • CURRENT_DATE() = CURDATE() : yyyy-mm-dd 형식으로 반환 시간은 반환하지 않음.
  • SYSDATE() : 함수가 호출된 시간을 반환
  • YEAR() : 날짜에서 연도 추출 / MONTH() : 날짜에서 월 추출 / DAY() : 날짜에서 일 추출
  • HOUR() / MINUTE() / SECOND() : 시간에서 각각 시/분/초 를 추출
  • WEEKDAY() : 오늘이 일주일 중 무슨 요일인지 숫자로 반환(0 = 월~ 6=일)
  • MONTHNAME() / DAYNAME() : 지금이 몇월인지/무슨 요일인지를 영문으로 뽑아냄.

날짜 타입(형식) 관련 함수

  • STR_TO_DATE(문자열, '%Y%m%d'(날짜타입))
    • 문자열을 날짜 타입으로 바꿈.
  • DATE_FORMAT (문자열, 날짜타입 ): 지정된 형식으로 날짜를 출력
    • %Y : 연도(2023)
    • %y : 연도(23)
    • %m : 월(12)
    • %d : 일(05)
    • %H : 시(05), 24시간 형태
    • %T : hh:mm:ss
    • %s : 초

날짜 연산 함수

  • ADDDATE() : 특정 interval 만큼 시간을 더함
    • DATE_ADD() 와 동일함수
    • ADDDATE(’2023-01-01’,3) = 2023-01-04 출력
    • ADDDATE(’2023-01-01’, INTERVER 3 DAY) = 2023-01-04 출력
  • SUBDATE() : 특정 interval 만큼 시간을 뺌
    • DATE_SUB() 과 동일 함수
  • CONVERT_TZ(시간, FROM타임존, TO타임존 ) : 타임존 변경하여 출력
    • FROM타임존 - 현재 적용되어있는 타임존(UTC)
    • TO타임존 - 적용 하고자 하는 타임존
    • SELECT CONVERT_TZ(NOW(), '+00:00', '+09:00')
      • UTC에서 9시간을 더하면 대한민국의 시간이 나옴.
  • DATEDIFF(날짜1, 날짜2) :날짜의 차이를 구함.(일단위)
  • TIMEDIFF() : 시간의 차이를 구함(시단위)
  • TIME_TO_SEC() : 시간을 초 단위로 반환
    • 실무 사용처:
      • 사용자 로그를 분석할때 사용.
      • 예시)
      • 저장된 시간간의 시간을 구한뒤 초단위로 바꾼 뒤
      • 클릭 후 구매까지 몇 초가 걸리는지 분석

0개의 댓글