📌 DATE 관련 함수
📅 날짜 생성 및 변환
CURDATE() : 현재 날짜 반환 (YYYY-MM-DD)
CURTIME() : 현재 시간 반환 (HH:MM:SS)
NOW() : 현재 날짜와 시간 반환 (YYYY-MM-DD HH:MM:SS)
DATE(NOW()) : 현재 날짜만 반환 (YYYY-MM-DD)
TIME(NOW()) : 현재 시간만 반환 (HH:MM:SS)
YEAR(NOW()), MONTH(NOW()), DAY(NOW()) : 연도, 월, 일만 추출
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') : 날짜 형식 변환 (%Y-%m-%d %H:%i:%s)
📌 MySQL 날짜 포맷 코드 정리
1. 연도 (Year)
| 형식 | 의미 | 예제 |
|---|
%Y | 4자리 연도 (Full year) | 2024 |
%y | 2자리 연도 (Last two digits) | 24 (→ 2024), 99 (→ 1999) |
SELECT DATE_FORMAT('2024-03-08', '%Y');
SELECT DATE_FORMAT('2024-03-08', '%y');
2. 월 (Month)
| 형식 | 의미 | 예제 |
|---|
%m | 2자리 숫자로 된 월 (01~12) | 03 (→ 3월) |
%c | 1자리/2자리 숫자로 된 월 (1~12) | 3 (→ 3월) |
%M | 영어 풀네임 월 (Month name) | March |
%b | 영어 약어 월 (Abbreviated month) | Mar |
SELECT DATE_FORMAT('2024-03-08', '%m');
SELECT DATE_FORMAT('2024-03-08', '%c');
SELECT DATE_FORMAT('2024-03-08', '%M');
SELECT DATE_FORMAT('2024-03-08', '%b');
3. 일 (Day)
| 형식 | 의미 | 예제 |
|---|
%d | 2자리 숫자로 된 일 (01~31) | 08 |
%e | 1자리/2자리 숫자로 된 일 (1~31) | 8 |
SELECT DATE_FORMAT('2024-03-08', '%d');
SELECT DATE_FORMAT('2024-03-08', '%e');
4. 요일 (Day of the Week)
| 형식 | 의미 | 예제 |
|---|
%W | 영어 풀네임 요일 | Friday |
%a | 영어 약어 요일 | Fri |
%w | 숫자 요일 (0=일요일, 6=토요일) | 5 |
SELECT DATE_FORMAT('2024-03-08', '%W');
SELECT DATE_FORMAT('2024-03-08', '%a');
SELECT DATE_FORMAT('2024-03-08', '%w');
5. 시간 (Hour)
| 형식 | 의미 | 예제 |
|---|
%H | 24시간제 (00~23) | 14 (→ 오후 2시) |
%h | 12시간제 (01~12) | 02 (→ 오후 2시) |
%I | 12시간제 (01~12) (대소문자 주의) | 02 |
%p | AM / PM 표시 | PM |
SELECT DATE_FORMAT('2024-03-08 14:30:00', '%H:%i:%s');
SELECT DATE_FORMAT('2024-03-08 14:30:00', '%h:%i:%s %p');
6. 분 & 초 (Minute & Second)
| 형식 | 의미 | 예제 |
|---|
%i | 분 (00~59) | 30 |
%s | 초 (00~59) | 45 |
SELECT DATE_FORMAT('2024-03-08 14:30:45', '%H:%i:%s');
📌 날짜 계산
DATE_ADD('2024-03-08', INTERVAL 5 DAY) : 5일 후 날짜 (2024-03-13)
DATE_SUB('2024-03-08', INTERVAL 2 MONTH) : 2개월 전 날짜 (2024-01-08)
TIMESTAMPDIFF(DAY, '2024-01-01', '2024-03-08') : 두 날짜 간의 차이 (단위: 일)
TIMEDIFF('12:00:00', '10:30:00') : 두 시간 간의 차이 (01:30:00)
📌 STRING 관련 함수
🔤 문자열 변환 및 조작
UPPER('hello') → 'HELLO' (대문자 변환)
LOWER('HELLO') → 'hello' (소문자 변환)
CONCAT('Hello', ' ', 'World') → 'Hello World' (문자열 연결)
CONCAT_WS('-', '2024', '03', '08') → '2024-03-08' (구분자 포함 연결)
SUBSTRING('abcdef', 2, 3) → 'bcd' (2번째 문자부터 3글자 추출)
LEFT('abcdef', 3) → 'abc' (왼쪽에서 3글자 추출)
RIGHT('abcdef', 2) → 'ef' (오른쪽에서 2글자 추출)
REPLACE('Hello World', 'World', 'MySQL') → 'Hello MySQL' (문자열 치환)
REPEAT('MySQL', 3) → 'MySQLMySQLMySQL' (반복)
📌 문자열 검색
LENGTH('MySQL') → 5 (문자 길이 반환)
LOCATE('SQL', 'MySQL') → 3 (SQL이 시작하는 위치)
INSTR('MySQL', 'SQL') → 3 (위와 동일)
POSITION('SQL' IN 'MySQL') → 3 (위와 동일)
📌 문자열 다듬기
TRIM(' MySQL ') → 'MySQL' (양쪽 공백 제거)
LTRIM(' MySQL') → 'MySQL' (왼쪽 공백 제거)
RTRIM('MySQL ') → 'MySQL' (오른쪽 공백 제거)