본문 바로가기
Language/MySQL

SQL 날짜형 함수

by Mesut Özil 2024. 1. 21.

SQL 날짜형 함수

 

1. CURDATE() / CURTIME()

  • CURDATE(): 현재 날짜 반환 (=CURRENT_DATE())
  • CURTIME(): 현재 시간 반환 (=CURRENT_TIME())
# [CURDATE]
SELECT CURDATE()
# 결과
2024-01-21


# [CURTIME]
SELECT CURTIME()
# 결과
20:17:45

 

2. CURRENT_TIMESTAMP() / NOW()

  •  현재 날짜+시간 반환
# [CURRENT_TIMESTAMP]
SELECT CURRENT_TIMESTAMP()
# 결과
2024-01-21 20:17:45

# [NOW]
SELECT NOW()
# 결과
2024-01-21 20:17:45

 

3. YEAR() / QUARTER() / MONTH() / WEEK() / DAY()

  • YEAR(): 날짜의 연도 반환
  • QUARTER(): 날짜의 분기 반환
  • MONTH() : 날짜의  반환
  • WEEK() : 날짜의 주차 반환
  • DAY() : 날짜의  반환
# [YEAR]
SELECT YEAR('2024-01-21')
# 결과
2024

# [QUARTER]
SELECT QUARTER('2024-01-21')
# 결과
1

# [MONTH]
SELECT MONTH('2024-01-21')
# 결과
1

# [WEEK]
SELECT WEEK('2024-01-21')
# 결과
3

# [DAY]
SELECT DAY('2024-01-21')
# 결과
21

 

4. HOUR() / MINUTE() / SECOND()

  • HOUR(): 시간의 시간 반환
  • MINUTE(): 시간의  반환
  • SECOND() : 시간  반환
# [HOUR]
SELECT HOUR('2024-01-21 15:30:45');
# 결과
15

# [MINUTE]
SELECT MINUTE('2024-01-21 15:30:45');
# 결과
30

# [SECOND]
SELECT SECOND('2024-01-21 15:30:45');
# 결과
45

 

5. DATE_FORMAT()

  • 날짜를 지정된 포맷으로 변환
# [1]
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d')
# 결과
2024-01-21

# [2]
SELECT DATE_FORMAT(NOW(), '%Y/%m/%d')
# 결과
2024/01/21

# [3]
SELECT DATE_FORMAT(NOW(), '%Y.%m.%d')
# 결과
2024.01.21

 

6. DATEDIFF()

  • 두 날짜 간일 수 차이 반환 (일자(Day)만 가능)
  • DATEDIFF(날짜1, 날짜2) = 날짜1-날짜2 (Day 차이 반환)
SELECT DATEDIFF('2024-01-21', '2024-01-11')
# 결과
10

 

7. TIMESTAMPDIFF()

  • 두 날짜 간 Unit 차이 반환 (Unit = Year, Quarter, Month, Week, Day, Hour, Minute, Second 가능)
  • TIMESTAMPDIFF(Unit, 날짜1, 날짜2) = 날짜2-날짜1 (Unit 차이 반환)
# [Year]
SELECT TIMESTAMPDIFF(Year, '2023-01-21', '2024-01-21')
# 결과
1

# [Month]
SELECT TIMESTAMPDIFF(Month, '2023-01-21', '2024-01-21')
# 결과
12

# [Week]
SELECT TIMESTAMPDIFF(Week, '2023-01-21', '2024-01-21')
# 결과
52

 

8. DATE_ADD()

  • 해당 날짜/시간 설정 값 더한 날짜/시간 반환
  • DATE_ADD(날짜, INTERVAL n YEAR/MONTH/DAY ('시간'인 경우 HOUR/MINUTE/SECOND 가능))
# [YEAR]
SELECT DATE_ADD('2024-01-21', INTERVAL 3 YEAR)
# 결과
2027-01-21

# [MONTH]
SELECT DATE_ADD('2024-01-21', INTERVAL 3 MONTH)
# 결과
2024-04-21

# [DAY]
SELECT DATE_ADD('2024-01-21', INTERVAL 3 DAY)
# 결과
2024-01-24

 

9. DATE_SUB()

  • 해당 날짜/시간에 설정 값 뺀 날짜/시간 반환
  • DATE_SUB(날짜, INTERVAL n YEAR/MONTH/DAY ('시간'인 경우 HOUR/MINUTE/SECOND 가능))
# [YEAR]
SELECT DATE_SUB('2024-01-21', INTERVAL 3 YEAR)
# 결과
2021-01-21

# [MONTH]
SELECT DATE_SUB('2024-01-21', INTERVAL 3 MONTH)
# 결과
2023-10-21

# [DAY]
SELECT DATE_SUB('2024-01-21', INTERVAL 3 DAY)
# 결과
2024-01-18

 

10. MONTHNAME() / DAYNAME()

  • MONTHNAME (): 날짜의 월명 반환
  • DAYNAME() : 날짜의 요일명 반환
# [MONTHNAME]
SELECT MONTHNAME('2024-01-21')
# 결과
'January'

# [DAYNAME]
SELECT DAYNAME('2024-01-21')
# 결과
'Sunday'

 

11. EXTRACT()

  • 특정 시간 요소 추출하는 데 사용되는 함수
  • 주로 날짜시간 값에서 ,,, 시간,, 등의 특정 요소를 추출하는 데 활용
# [YEAR]
SELECT EXTRACT(YEAR FROM '2024-01-21')
# 결과
2024

# [MONTH]
SELECT EXTRACT(MONTH FROM '2024-01-21')
# 결과
01

# [DAY]
SELECT EXTRACT(DAY FROM '2024-01-21')
# 결과
21

 

 

 

'Language > MySQL' 카테고리의 다른 글

SQL 집계 함수  (0) 2024.01.26
SQL 일반 함수  (0) 2024.01.22
SQL 문자형 함수  (0) 2024.01.20
SQL 숫자형 함수  (0) 2024.01.19
DML이란?  (0) 2024.01.11