728x90
반응형
MySQL에서 문자열을 특정한 날짜 형식으로 변환하는 함수입니다.
주로 날짜 또는 시간이 문자열로 저장된 데이터를 DATETIME, DATE, TIME 형식으로 변환할 때 사용됩니다.
STR_TO_DATE(string, format)
- string: 변환할 문자열
- format: 문자열의 날짜/시간 형식을 지정하는 포맷 문자열
자주 사용하는 포맷 코드
코드 | 설명 | 예시 |
%Y | 4자리 연도 | 2024 |
%y | 2자리 연도 | 24 |
%m | 2자리 월 (01~12) | 03 |
%d | 2자리 일 (01~31) | 15 |
%H | 24시간제 시 (00~23) | 14 |
%i | 분 (00~59) | 30 |
%s | 초 (00~59) | 45 |
%p | AM/PM | AM |
%h | 12시간제 시 (01~12) | 02 |
1. 문자열을 날짜(DATE)로 변환
SELECT STR_TO_DATE('2024-03-14', '%Y-%m-%d');
✅ 결과: 2024-03-14 (DATE)
2. 문자열을 날짜 및 시간(DATETIME)으로 변환
SELECT STR_TO_DATE('2024-03-14 14:30:45', '%Y-%m-%d %H:%i:%s');
✅ 결과: 2024-03-14 14:30:45 (DATETIME)
3. 다른 형식의 날짜 문자열 변환
SELECT STR_TO_DATE('03/14/2024', '%m/%d/%Y');
✅ 결과: 2024-03-14
4. 12시간제 시간 문자열 변환
SELECT STR_TO_DATE('03/14/2024 02:30 PM', '%m/%d/%Y %h:%i %p');
✅ 결과: 2024-03-14 14:30:00
5. 초가 없는 시간 문자열 변환
SELECT STR_TO_DATE('14:30', '%H:%i');
주의 사항
- STR_TO_DATE는 문자열을 해석할 뿐이고, 결과 데이터 타입은 DATE, DATETIME, TIME 중 하나가 됩니다.
- STR_TO_DATE의 포맷(format)이 입력 문자열과 정확히 일치해야 합니다.
- 변환할 문자열이 유효하지 않으면 NULL을 반환합니다
SELECT STR_TO_DATE('2024-02-30', '%Y-%m-%d');
✅ 결과: NULL (2월 30일은 존재하지 않음)
728x90
반응형
'DB' 카테고리의 다른 글
[DB][Oracle] INSTR (0) | 2025.04.11 |
---|---|
[DB][SQL] COUNT(DISTINCT *)/ COUNT(*) 차이 (0) | 2025.03.31 |
[DB][Mybatis][MySQL] 공백에 영향 받지 않고 검색어로 데이터 조회하기 (0) | 2025.03.12 |
[DB][MySQL, ORACLE] LAST_DAY 함수 (0) | 2025.03.06 |
[DB][MySQL] 동적으로 년월 생성 (0) | 2025.03.04 |