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 |