MySQL DATE, STRING 함수 정리

hyunnzl·2025년 3월 7일

📌 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)

형식의미예제
%Y4자리 연도 (Full year)2024
%y2자리 연도 (Last two digits)24 (→ 2024), 99 (→ 1999)
SELECT DATE_FORMAT('2024-03-08', '%Y'); -- 결과: 2024
SELECT DATE_FORMAT('2024-03-08', '%y'); -- 결과: 24





2. 월 (Month)

형식의미예제
%m2자리 숫자로 된 월 (01~12)03 (→ 3월)
%c1자리/2자리 숫자로 된 월 (1~12)3 (→ 3월)
%M영어 풀네임 월 (Month name)March
%b영어 약어 월 (Abbreviated month)Mar
SELECT DATE_FORMAT('2024-03-08', '%m'); -- 결과: 03
SELECT DATE_FORMAT('2024-03-08', '%c'); -- 결과: 3
SELECT DATE_FORMAT('2024-03-08', '%M'); -- 결과: March
SELECT DATE_FORMAT('2024-03-08', '%b'); -- 결과: Mar





3. 일 (Day)

형식의미예제
%d2자리 숫자로 된 일 (01~31)08
%e1자리/2자리 숫자로 된 일 (1~31)8
SELECT DATE_FORMAT('2024-03-08', '%d'); -- 결과: 08
SELECT DATE_FORMAT('2024-03-08', '%e'); -- 결과: 8





4. 요일 (Day of the Week)

형식의미예제
%W영어 풀네임 요일Friday
%a영어 약어 요일Fri
%w숫자 요일 (0=일요일, 6=토요일)5
SELECT DATE_FORMAT('2024-03-08', '%W'); -- 결과: Friday
SELECT DATE_FORMAT('2024-03-08', '%a'); -- 결과: Fri
SELECT DATE_FORMAT('2024-03-08', '%w'); -- 결과: 5





5. 시간 (Hour)

형식의미예제
%H24시간제 (00~23)14 (→ 오후 2시)
%h12시간제 (01~12)02 (→ 오후 2시)
%I12시간제 (01~12) (대소문자 주의)02
%pAM / PM 표시PM
SELECT DATE_FORMAT('2024-03-08 14:30:00', '%H:%i:%s'); -- 결과: 14:30:00
SELECT DATE_FORMAT('2024-03-08 14:30:00', '%h:%i:%s %p'); -- 결과: 02:30:00 PM





6. 분 & 초 (Minute & Second)

형식의미예제
%i분 (00~59)30
%s초 (00~59)45
SELECT DATE_FORMAT('2024-03-08 14:30:45', '%H:%i:%s'); -- 결과: 14:30:45





📌 날짜 계산

  • 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' (오른쪽 공백 제거)

0개의 댓글