[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

  • 1992년에 태어난 회원들만 조회
SELECT *
FROM copang_main.member
WHERE YEAR(birthday) = '1992'

MONTH

  • 7, 8월에 가입한 회원들만 조회
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;

Tags:

Categories:

Updated: