타임스탬프 함수는!
현재 시간을 구하거나 날짜의 차이 등을 구할 때 사용
보통 사용자 로그를 분석할때 사용.
데이터 예시)
저장된 시간간의 시간을 구한뒤 초단위로 바꾼 뒤
클릭 후 구매까지 몇 초가 걸리는지 분석
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
시간 관련 함수
- 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 만큼 시간을 뺌
- CONVERT_TZ(시간, FROM타임존, TO타임존 ) : 타임존 변경하여 출력
- FROM타임존 - 현재 적용되어있는 타임존(UTC)
- TO타임존 - 적용 하고자 하는 타임존
- SELECT CONVERT_TZ(NOW(), '+00:00', '+09:00')
- UTC에서 9시간을 더하면 대한민국의 시간이 나옴.
- DATEDIFF(날짜1, 날짜2) :날짜의 차이를 구함.(일단위)
- TIMEDIFF() : 시간의 차이를 구함(시단위)
- TIME_TO_SEC() : 시간을 초 단위로 반환
- 실무 사용처:
- 사용자 로그를 분석할때 사용.
- 예시)
- 저장된 시간간의 시간을 구한뒤 초단위로 바꾼 뒤
- 클릭 후 구매까지 몇 초가 걸리는지 분석