본문으로 바로가기

오늘은 MS-SQl을 쓰다가 필요한 쿼리를 찾던 중
TO_CHAR로 된 쿼리를 찾았는데 써보니
MS-SQL용 쿼리가 아니라 ORACLE용 쿼리여서 적용할 수 없었습니다.

그래서 찾던 중 ORACLE의 TO_CAHR 함수를 MS-SQL의 CONVERT 함수로 대체할 수 있다는 것을 찾아서 이렇게 정리해 봅니다.

혹시나 저처럼 필요하신 분은 아래를 참조하시면 되겠습니다!!

출처 :
ORACLE의 TO_CHAR 함수를 MSSQL의 CONVERT 함수로


※ ORACLE에서 날짜를 처리할때는
TO_CHAR(SYSDATE,'YYYY-MM-DD') -> 2003-01-23
TO_CHAR(SYSDATE,'YYYY/MM/DD') -> 2003/01/23
TO_CHAR(SYSDATE,'YYYYMMDD') -> 20030123

※ 반대로 처리할때는 TO_DATE함수를 사용하면 되죠~

※ ORACLE에서 숫자를 처리할때는
TO_CHAR(2500000,'L9,999,999') -> w2,500,000
TO_CHAR(2500000,'9,999,999.99') -> 2,500,000.00

※ 반대로 처리할때는 TO_NUMBER함수를 사용하면 되죠~
※ 이 외에도 활용할 수있는 용도가 무지 많습니다.

※ MSSQL에서 날짜를 처리할때는
CONVERT(VARCHAR(10),GETDATE(),120) -> 2003-01-23
CONVERT(VARCHAR(10),GETDATE(),111) -> 2003/01/23
CONVERT(VARCHAR(8),GETDATE(),112) -> 20030123

※ MSSQL에서 숫자를 처리할때는
CONVERT(varchar(20),   convert(money,2500000),1) -> 2,500,000.00


출처 :
DBMS별 날짜 포맷변환

1. DBMS 별 시간, 날짜 조회 쿼리

Oracle

select sysdate from dual;  날짜+시분초 까지 조회가능
select current_timestamp from dual;  날짜+밀리초+시간존 까지 조회

MS SQL

select getdate()    날짜 + 밀리초 단위까지 조회가능

DB2 UDB

select current timestamp from sysibm.sysdummy1  날짜+밀리초까지 조회select current date from sysibm.sysdummy1  날짜만 조회
select current time from sysibm.sysdummy1  밀리초 단위시간조회



2. DBMS 별 default date format

Oracle      

YY/MM/DD  (한글)
DD-MON-YYYY  (영어)

MS SQL

YYY/MM/DD HH:MI:SS   (한글)
MM-DD-YYYY HH:MI:SS   (영어)

DB2 UDB

YYYY-MM-DD-HH:MI:SS.MMMMMM (TIMESTAMP 타입)
YYYY-MM-DD (DATE 타입)
HH:MI:SS.MMMMMM (TIME 타입)



3. 날짜 포맷 변환표

형식

 

RDBMS

변환 문법

'YYYY.MM.DD'

Oracle


TO_CHAR(date_exp, 'YYYY.MM.DD')

 

MSSQL


CONVERT(VARCHAR, date_exp, 102)

 

DB2


REPLACE(CHAR(DATE(date_exp),ISO), '-', '.')

 

 'HH:MI:SS'

Oracle


TO_CHAR(date_exp, 'HH:MI:SS')

 


MSSQL

 

CONVERT(VARCHAR, date_exp, 108)


DB2

 

CHAR(TIME(date_exp) , JIS )

 'YYYY/MM/DD'


Oracle

 

TO_CHAR(date_exp, 'YYYY/MM/DD')


MSSQL

 

CONVERT(VARCHAR, date_exp, 111)


DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '/')

 'YYYYMMDD'


Oracle

 

TO_CHAR(date_exp, 'YYYYMMDD')


MSSQL

 

CONVERT(VARCHAR, date_exp, 112)


DB2

 

CHAR(DATE(date_exp))

 'HH24:MI:SS'


Oracle

 

TO_CHAR(date_exp, 'HH24:MI:SS')


MSSQL

 

CONVERT(VARCHAR(8), date_exp, 114)


DB2

 

CHAR(TIME(date_exp) )

 'YYYY.MM.DD HH24:MI'


Oracle

 

TO_CHAR(date_exp, 'YYYY.MM.DD HH24:MI')


MSSQL

 

CONVERT(VARCHAR, date_exp, 102) + ' ' + CONVERT(VARCHAR(5), date_exp, 114)


DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '.') || CAST( TIME(date_exp) AS CHAR(5))

 'YYYY/MM/DD HH24:MI:SS'


Oracle

 

TO_CHAR(date_exp, 'YYYY/MM/DD HH24:MI:SS')


MSSQL

 

CONVERT(VARCHAR, date_exp, 111) + ' ' + CONVERT(VARCHAR(8), date_exp, 114)


DB2

 

REPLACE(CHAR(DATE(date_exp), ISO), '-', '/') || CAST( TIME(date_exp))