본문 바로가기
  • [성공하는 개발자] - Developer
DataBase/MSSQL

[MSSQL] FORMAT 함수 사용법 (TO_CHAR, 날짜, 소수점)

by Sein-JH 2022. 4. 19.
728x90

 

SQL Server 2012 버전부터 FORMAT 함수가 추가되었다. 오라클에서는 TO_CHAR 함수를 사용하여 날짜 형식을 문자열로 쉽게 변환을 할 수 있고, MSSQL에서는 CONVER 함수를 사용하여 변환이 가능하지만 조금 아쉬운 면이 있었다.

 

FORMAT 함수를 사용하여 오라클의 TO_CHAR 함수에서 가능했던 3가지 사용법을 소개한다.

 

  • 날짜 문자열 변환
  • 수치값 천단위 콤마
  • 찍기수치값 소주점 표시

| 날짜 문자열 변환

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd')          AS result1   
     , FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS result2

 

 

오라클에서 날짜를 문자열로 변환하던 비슷한 형식으로 사용이 가능하다.

 

SELECT FORMAT(GETDATE(), 'yyyyMMdd')    AS result1
     , FORMAT(GETDATE(), 'HH:mm:ss')    AS result2
     , FORMAT(GETDATE(), 'hh:mm:ss tt') AS result3
     , FORMAT(GETDATE(), 't')           AS result4

 

 

다양한 날짜 변환 형식이 사용 가능하다.

 

| 수치값 천단위 콤마 찍기

SELECT FORMAT(123456, '###,###')    AS result1
     , FORMAT(123456789, '###,###') AS result2
     , FORMAT(123456789, '#,#')     AS result2

 

 

수치값에 #,# 형식을 사용하면 천단위로 콤마(쉼표)를 표시할 수 있다.

 

| 수치값 소수점 표시

SELECT FORMAT(12345.6, '0.00') AS result1
     , FORMAT(1234.56, '0.00') AS result2
     , FORMAT(123.456, '0.00') AS result3

소수점 이하에 "0"의 개수만큼 소수점을 표시한다.

 

result1 : 소수점 이하가 1자리지만 형식이 두 자리까지 표시했으므로 빈값은 "0"으로 표시한다.

result3 : 소수점 이하를 2자리 까지 표시하도록 하면 반올림하여 소수점을 표시한다.

 

SELECT FORMAT(1234.56, '0.0')   AS result1
     , FORMAT(1234.56, '0.00')  AS result2
     , FORMAT(1234.56, '0.000') AS result3

 

 참고 : https://gent.tistory.com/379?category=874679

댓글