데이터 분석/SQL

[day5] 날짜함수 (DATE, DATEDIFF, DATE_ADD, DATE_SUB, DAYOFMONTH, DAYOFWEEK/WEEKDAY, CURDATE)

경 민 2025. 2. 21. 10:33

DATE

🔶기본 구조

DATE('date')

"날짜값만 출력"

 

🔶예시

  • DATE('2025-02-21 10:05:22') = 2025-02-21

DATEDIFF

🔶기본 구조

DATEDIFF(date2,date1)

"date2 에서 date1 을 뺀 일수 값"

 

🔶특징

시간은 계산되지 않음. 날짜만 계산!

 

PERIODDIFF

🔶 기본 구조

PERIODDIFF('date1','date2')

"date1와 date2기간 사이의 월수 차이"

 

🔶 특징

시간은 계산되지 않음. 날짜만 계산!

 

DATE_ADD / ADDDATE

🔶기본 구조

DATE_ADD('date', INTERVAL n UNIT)

"date 에서 UNIT단위의 n만큼 더한 날짜 값"

 

🔶 예시

  • DATE_ADD('2025-02-21 10:07:21', INTERVAL 10 YEAR) = 2035-02-21 10:07:21
  • DATE(DATE_ADD('2025-02-21 10:07:21', INTERVAL -2 DAY)) = 2025-02-19 

 

DATE_SUB / SUBDATE

🔶 기본 구조

DATE_SUB('date', INTERVAL n UNIT)

"date에서 UNIT단위의 n만 뺀 날짜 값"

 

🔶예시

  • DATE_SUB('2025-02-21 10:07:21', INTERVAL 2 MONTH) = 2024-12-21 10:07:21
  • DATE_SUB('2025-02-21 10:07:21', INTERVAL 5 HOUR)= 2025-02-21 15:07:21

 

DAYOFMONTH

🔶 기본 구조

DAYOFMONTH('date')

"date에서 day(일) 값"

 

🔶 예시

  • DAYOFMONTH('2025-02-21 10:07:21') = 21

 

DAYOFWEEK / WEEKDAY

🔶 기본 구조

DAYOFWEEK('date')
WEEKDAY('date')

"요일값을 숫자로 표현할래"

 

🔶 비교

DAYOFWEEK WEEKDAY
일요일부터 시작 (일요일 ~ 토요일)
1부터 시작 (1 ~ 7)
월요일부터 시작 (월요일 ~ 일요일)
0부터 시작 (0 ~ 6)
1 = 일요일, 2 = 월요일 , ... 7 = 토요일 0 = 월요일, 1 = 화요일, ... 6 = 일요일

 

🔶 예시

  • DAYOFWEEK('2025-02-21') = 6 (금요일)
  • DAYOFWEEK(DATE_SUB('2025-02-21' INTERVAL 2 DAY)) = 1 (일요일)
  • WEEKDAY('2025-02-21') = 4 (금요일)
  • WEEKDAY(DATE_ADD('2025-02-21 INTERVAL 2 DAY)) =  6 (일요일)

 

CURDATE

🔶기본 구조

CURDATE()

"현재 날짜"

 

🔶특징

  • 날짜값만 출력 !
  NOW() CURDATE()
출력값 현재 날짜 + 시간 현재 날짜
예시 NOW()
= 2025-02-21 10:21:30
CURDATE()
= 2025-02-21