MySQL의 STR_TO_DATE() 함수는 문자열 값을 지정된 형식에 따라 DATETIME(날짜·시간) 값으로 변환해 주는 함수입니다. 이 함수를 사용하려면 변환할 문자열과 해당 문자열의 날짜 형식을 나타내는 포맷 문자열, 두 개의 인자를 반드시 함께 전달해야 합니다.
STR_TO_DATE() 함수 기본 문법
STR_TO_DATE(string, format)
여기서 string은 DATETIME 값으로 변환하고자 하는 문자열이며, format은 그 문자열이 어떤 날짜 형식으로 작성되어 있는지 지정하는 포맷입니다.
STR_TO_DATE() 함수 사용 예제
다음 예제는 주어진 문자열을 지정한 형식에 맞추어 유효한 날짜 값으로 변환하여 반환하는 과정을 보여줍니다.
mysql> Select STR_TO_DATE('20172810', '%Y%d%m');
+-----------------------------------+
| STR_TO_DATE('20172810', '%Y%d%m') |
+-----------------------------------+
| 2017-10-28 |
+-----------------------------------+
1 row in set (0.00 sec)위 예제에서 입력 문자열 '20172810'은 '%Y%d%m' 형식, 즉 연도(%Y)-일(%d)-월(%m) 순서로 해석되어 최종적으로 '2017-10-28'이라는 유효한 날짜 값이 반환됩니다.
자주 사용하는 날짜 형식 지정자
- %Y : 4자리 연도 (예: 2017)
- %y : 2자리 연도 (예: 17)
- %m : 2자리 월 (01~12)
- %d : 2자리 일 (01~31)
- %H : 24시간제 시간 (00~23)
- %i : 분 (00~59)
- %s : 초 (00~59)
STR_TO_DATE() 함수는 CSV 파일 가져오기나 외부 시스템에서 전달된 비표준 형식의 날짜 문자열을 MySQL이 인식할 수 있는 DATE, DATETIME 타입으로 변환할 때 특히 유용하게 활용됩니다.