[MySQL] SQL 날짜 함수 정리
1 minute read
SQL 날짜 함수 정리
YEAR
: DATE형 자료형에서 연도만 추출
MONTH
: DATE형 자료형에서 월만 추출
DAYOFMONTH
: DATE형 자료형에서 일만 추출
DATEDIFF
: DATE형 자료형들 간 날짜 차이 산출
CURDATE
: 오늘 날짜
DATE_ADD
: 날짜 더하기
DATE_SUB
: 날짜 빼기
UNIX_TIMESTAMP
: DATE 자료형을 Unix timestamp(1970년 1월 1일을 기준으로 몇 초가 지났는지)로 변환
FROM_UNIXTIME
: Unix timestamp을 DATE 자료형으로 변환
- 그 외 MYSQL DATE 관련 공식 문서
YEAR
SELECT *
FROM copang_main.member
WHERE YEAR(birthday) = '1992'
MONTH
SELECT *
FROM copang_main.member
WHERE MONTH(sign_up_day) IN (7,8)
DAYOFMONTH
- 각 달의 15일~31일에 가입했던 회원들만 조회
SELECT *
FROM copang_main.member
WHERE DAYOFMONTH(sign_up_day) BETWEEN 15 AND 31
DATEDIFF
- 회원가입한 날짜와 2019-01-01 간 차이 산출
SELECT email, sign_up_day, DATEDIFF(sign_up_day, '2019-01-01')
FROM copang_main.member;
CURDATE
SELECT email, sign_up_day, DATEDIFF(sign_up_day, CURDATE())
FROM copang_main.member;
DATE_ADD & DATE_SUB
- DATE_ADD([variable_name], INTERVAL [number] DAY)
- DATE_SUB([variable_name], INTERVAL [number] DAY)
# 가입일(sign_up_day) 기준으로 300일 이후의 날짜 산출
SELECT email, sign_up_day, DATE_ADD(sign_up_day, INTERVAL 300 DAY)
FROM copang_main.member;
# 가입일(sign_up_day) 기준으로 300일 전의 날짜 산출
SELECT email, sign_up_day, DATE_SUB(sign_up_day, INTERVAL 300 DAY)
FROM copang_main.member;
UNIX_TIMESTAMP
- sign_up_day의 날짜값을 Unix Timestamp로 변환
SELECT email, sign_up_day, FROM_UNIXTIME(UNIX_TIMESTAMP(sign_up_day))
FROM copang_main.member;