본문 바로가기
Back-End/🐬MySQL (RDBMS)

[MySQL] DATE 관련 함수

by 코딩하는 동현😎 2022. 5. 8.

 

실습을 위해 초기화(클릭)

 

[MySQL] SELECT 문으로 데이터 조회(1) - WHERE 조건문 기초

실습을 위해 초기화 먼저 데이터베이스를 생성해줍니다! 이름을 기업 느낌나게 쿠팡으로 할까요? 번개 표시를 눌러서 실행시켜주고, 동기화 버튼 누르면 스키마에 적용이 됩니다. 그다음에 아

konkukcodekat.tistory.com

 

이 포스트를 이미 보시고 실습 하신 분은 할 필요없습니다.

 

이 포스트를 안보신분은 이 포스트에서 앞부분에 실습 초기화를 해주세요!


1. 연도, 월, 일 추출하기

DATE 타입의 값에서 연도(year)만, 혹은 월(month)만, 혹은 일(day)만 추출할 수 있습니다.

YEAR() , MONTH() , DAYOFMONTH() 

(1) 1995년에 태어난 회원들만 조회하기

YEAR 함수를 사용하면 날짜 값에서 연도만 뽑아낼 수 있습니다. 

주의할것은 문자열이라는것!


(2) 가을(9, 10, 11월)에 가입한 회원들만 조회하기 

 

위 그림처럼 MONTH 함수를 사용하면 날짜값에서 월만 뽑아낼 수 있습니다.

지금 그 뒤에는 이전 노트에서 배운 IN 조건 표현식을 사용해봤습니다.

IN은 튜플안에 포함되는 값에 해당되는 것으로 OR과 비슷합니다.

 


(3) 각 달의 전반부(1일~15일)에 가입했던 회원들만 조회하기

DAYOFMONTH 함수는 날짜값에서 일만 뽑아낼 수 있습니다. 그 뒤에는 이전에 배운 BETWEEN a AND b 구문을 사용해봤습니다.

 


2. 날짜 간의 차이 구하기

날짜 간의 차이를 구하는 함수도 있습니다. DATEDIFF라는 함수인데요.

DATEDIFF(날짜 a, 날짜 b)를 사용하면 '날짜 a - 날짜 b'를 해서 그 차이 일수를 알려줍니다.

member 테이블에서 각 회원이 가입한 일자가 2018년 1월 1일을 기준으로 몇 일 이후인지를 알아보겠습니다. 아래 SQL 문을 자세히 살펴보세요.


오늘 날짜를 기준으로 살펴보는 것도 가능한데요. 오늘 날짜를 구하는 함수는 CURDATE()입니다. 

현재를 기분으로 가입한지 몇일 됐는지 SELECT 출력해 봅시다.


3. 날짜 더하기 빼기 

날짜에서 며칠을 더하고 빼는 것도 가능한데요. 더하는 함수는 DATE_ADD(), 빼는 함수는 DATE_SUB()입니다. 

예를 들어, 가입일(sign_up_day) 기준으로 300일 이후의 날짜를 구하려면 이렇게 쓰면 됩니다. 

그냥 정수 말고 INTERVAL 300 DAY로 작성하셔야합니다!

DATEDIFF와 차이점: DATEDIFF()는 일수를 반환 , DATE_ADD() , DATE_SUB()는 date객체를 반환


4. UNIX Timestamp 값 

UNIX Timestamp는 특정 날짜의 특정 시간을, 1970년 1월 1일을 기준으로, 총 몇 초가 지났는지로 나타낸 값입니다. 

반응형

댓글