DB

[DB][MySQL] STR_TO_DATE 함수

오선지♬ 2025. 3. 14. 20:55
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');

 

 

주의 사항

  1. STR_TO_DATE는 문자열을 해석할 뿐이고, 결과 데이터 타입은 DATE, DATETIME, TIME 중 하나가 됩니다.
  2. STR_TO_DATE의 포맷(format)이 입력 문자열과 정확히 일치해야 합니다.
  3. 변환할 문자열이 유효하지 않으면 NULL을 반환합니다
SELECT STR_TO_DATE('2024-02-30', '%Y-%m-%d');

결과: NULL (2월 30일은 존재하지 않음)

728x90
반응형