SQL 날짜 포맷 변환

Oracle·MySQL·MSSQL·PG 날짜 포맷

DB

🔒 이 도구는 입력한 데이터를 서버로 전송하지 않습니다. 모든 변환·계산은 여러분의 브라우저 안에서만 실행되므로 민감한 데이터도 안전하게 처리할 수 있습니다.

SQL 날짜 포맷, DB마다 왜 다를까?

같은 "날짜를 YYYY-MM-DD 문자열로 바꾸기"라도 데이터베이스마다 함수와 포맷 기호가 완전히 다릅니다. Oracle·PostgreSQL은 TO_CHARYYYY-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와 원하는 포맷만 고르면 정확한 함수 호출식과 예제 쿼리를 만들어 줍니다.

사용 방법

  1. 대상 DB(Oracle·MySQL·SQL Server·PostgreSQL)를 선택합니다.
  2. 용도(날짜→문자열 포맷 / 문자열→날짜 파싱)와 원하는 포맷, 컬럼명을 지정합니다.
  3. 생성된 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 ServerFORMAT(col,'yyyy-MM-dd')(2012+) 또는 구버전 CONVERT(varchar,col,120)
  • PostgreSQLTO_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 생성은 브라우저에서만 이뤄지며 입력값은 전송·저장되지 않습니다.