SQL 문자/날짜 형 변환 - TO_CHAR / TO_DATE / DATE_FORMAT / STR_TO_DATE / CONVERT

데이터베이스를 사용하다면 날짜를 문자열로 또는 문자를 날짜로 바꿀 때가 있다

그럴 때 사용하는 내용이다

 

먼저 오라클에서 사용하는 함수이다

숫자 또는 날짜 데이터를 문자형으로 변경하는 TO_CHAR(데이터, '출력 형식')

 

SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD')  -  오늘 날짜의 출력 형식을 결정해서 문자로 리턴

SELECT TO_CHAR(100000, '00000000') 

-  결과 : 00100000 자릿수를 8 자리로 고정한 형태임 여러 형식을 설정할 수 있다 자세한 내용은 따로 검색해보기를 

 

 

다음은 문자를 날짜형으로 변환하는 TO_DATE(데이터, '날짜 형식')

 

SELECT TO_DATE('20080101', 'YYYY/MM/DD')  -  20080101이라는 문자를 2008/01/01의 형태의 날짜로 리턴

 

 

 

MYSQL에서 사용하는 함수들을 보자

날짜를 문자열로 변환할 때는 DATE FORMAT(날짜, 출력 형식)을 사용한다

SELECT DATE_FORMAT('2019-09-16 20:23:12', '%Y/%M/%D')  -  2019/09/16 출력

느낌은 쉽게 이해할 거라 생각한다 오라클과는 출력 형식이 약간 다른데 자세한 형식들은 인터넷을 참고하자

 

문자열을 날짜로 변환할 때는 STR_TO_DATE(문자, 출력 형식) 함수를 사용한다

SELECT STR_TO_DATE('20080101', '%Y-%M-%D')  -  20080101이라는 문자를 2008-01-01의 형태의 날짜로 리턴

 

 

 

마지막으로 MSSQL에서 사용하는 아이들이다

날짜를 문자로 바꿀 때는 CONVERT(포맷(길이), 날짜, 변환 형식)를 사용한다

SELECT CONVERT(VARCHAR, GETDATE(), 120)  -  결과 : 2019-09-15 15:30:11

120은 YYYY-MM-DD HH24:MI:SS 형식이다 다른 숫자들은 다른 형식을 의미하는데 검색하여 활용하자

 

 

문자를 날짜로 바꿀 때는 CONVERT(날짜 형식, 문자)를 사용한다

SELECT CONVERT(DATE, '2008-01-01')  -  2008-01-01 문자가 날짜로 변경된다

SELECT CONVERT(DATETIME, '2008-01-01 15:14:13')  -  2008-01-01 15:14:13 문자가 날짜/시간으로 변경된다