SQL 날짜 포맷 변환
Oracle·MySQL·MSSQL·PG 날짜 포맷
🔒 이 도구는 입력한 데이터를 서버로 전송하지 않습니다. 모든 변환·계산은 여러분의 브라우저 안에서만 실행되므로 민감한 데이터도 안전하게 처리할 수 있습니다.
SQL 날짜 포맷, DB마다 왜 다를까?
같은 "날짜를 YYYY-MM-DD 문자열로 바꾸기"라도 데이터베이스마다 함수와 포맷 기호가 완전히 다릅니다. Oracle·PostgreSQL은 TO_CHAR에 YYYY-MM-DD HH24:MI:SS 같은 대문자 토큰을, MySQL은 DATE_FORMAT에 %Y-%m-%d %H:%i:%s 처럼 % 기호를, SQL Server는 FORMAT에 .NET 스타일 yyyy-MM-dd HH:mm:ss 또는 CONVERT의 스타일 코드를 씁니다. 이 도구는 DB와 원하는 포맷만 고르면 정확한 함수 호출식과 예제 쿼리를 만들어 줍니다.
사용 방법
- 대상 DB(Oracle·MySQL·SQL Server·PostgreSQL)를 선택합니다.
- 용도(날짜→문자열 포맷 / 문자열→날짜 파싱)와 원하는 포맷, 컬럼명을 지정합니다.
- 생성된 SQL을 복사해 쿼리에 붙여넣습니다.
DB별 대표 함수
- Oracle — 포맷
TO_CHAR(col,'YYYY-MM-DD HH24:MI:SS')/ 파싱TO_DATE(str,'YYYY-MM-DD') - MySQL — 포맷
DATE_FORMAT(col,'%Y-%m-%d %H:%i:%s')/ 파싱STR_TO_DATE(str,'%Y-%m-%d') - SQL Server —
FORMAT(col,'yyyy-MM-dd')(2012+) 또는 구버전CONVERT(varchar,col,120) - PostgreSQL —
TO_CHAR(col,'YYYY-MM-DD')/ 파싱TO_TIMESTAMP(str,'YYYY-MM-DD HH24:MI:SS')
포맷 토큰 비교
- 연
YYYY(Oracle/PG/MSSQL은 yyyy) /%Y(MySQL) - 월
MM/%m· 일DD(MSSQL dd) /%d - 시(24h)
HH24(Oracle/PG),HH(MSSQL) /%H(MySQL) - 분
MI(Oracle/PG),mm(MSSQL) /%i(MySQL) · 초SS/ss/%s
주의점
- SQL Server
FORMAT은 2012 이상에서만 동작하고 대량 처리 시 느립니다. 성능이 중요하면CONVERT스타일 코드(120=yyyy-MM-dd HH:mm:ss, 112=yyyyMMdd, 111=yyyy/MM/dd)를 쓰세요. - MySQL의 시(hour)는
%H(24시간)와%h(12시간)가 다릅니다. - 이 도구는 스니펫만 생성하며 DB에 연결하거나 쿼리를 실행하지 않습니다.
자주 묻는 질문
오라클에서 날짜를 문자열로 어떻게 바꾸나요?
TO_CHAR 함수를 씁니다. 예: TO_CHAR(created_at, 'YYYY-MM-DD HH24:MI:SS'). 시간은 24시간 표기 HH24, 분은 MI, 초는 SS를 사용합니다.
MySQL과 Oracle의 포맷 기호가 왜 다른가요?
MySQL은 DATE_FORMAT에 %Y %m %d 처럼 퍼센트 토큰을, Oracle/PostgreSQL은 TO_CHAR에 YYYY MM DD 같은 대문자 토큰을 사용하기 때문입니다. 같은 결과라도 기호 체계가 다릅니다.
SQL Server에서 FORMAT과 CONVERT 중 무엇을 쓰나요?
가독성은 FORMAT(2012+)이 좋지만 대량 데이터에서는 느립니다. 성능이 중요하면 CONVERT(varchar, col, 120) 처럼 스타일 코드를 쓰는 편이 빠릅니다.
문자열을 날짜로 파싱할 수도 있나요?
네. 용도를 "문자열→날짜"로 바꾸면 Oracle TO_DATE, MySQL STR_TO_DATE, PostgreSQL TO_TIMESTAMP, SQL Server CONVERT/TRY_CONVERT 예제를 생성합니다.
입력한 컬럼명이 서버로 전송되나요?
아니요. 모든 SQL 생성은 브라우저에서만 이뤄지며 입력값은 전송·저장되지 않습니다.