티스토리 뷰

SQL

SQL Server 2012에서의 FORMAT 함수

정홍주 2012. 4. 4. 08:30

 

SQL Server 2012에서의 FORMAT 함수

 

.NET에서는 날짜 형식이나 숫자 형식에 대한 FORMAT을 초기부터 제공해왔습니다. 그래서 아래와 같은 코드를 작성할 수 있습니다. CultureInfo를 통해 언어별 지원을 제공할 수 도 있습니다.

 

CultureInfo culture = new CultureInfo("fr-FR");

string dt = string.Format(culture, "{0:D}", DateTime.Now);

 

int i = 62500;

string price = i.ToString("C", culture);

string price2 = string.Format(culture, "{0:C}", i);

 

dt : "mardi 3 avril 2012"

price : "62 500,00 €"

price2 : "62 500,00 €"

 

 

SQL Server 에서는 날짜 형식이나 숫자 형식에 대한 지원을 .NET 응용 프로그램에서 처리하거나 별도의 테이블을 생성하여 처리했습니다. 또는 언어별 컬럼을 생성하여 처리해야 했습니다.

 

SQL Server 2012에서는 FORMAT 함수가 지원이 되어 .NET 과 거의 동일하게 작업이 가능합니다.

http://technet.microsoft.com/ko-kr/library/hh213505.aspx

 

l  날짜 형식에 대한 부분을 알아보도록 하겠습니다.

DECLARE @d DATE = GETDATE()

 

SELECT        FORMAT(@d, N'dd/MM/yyyy')

--03-04-2012

 

SELECT     FORMAT(@d, N'dddd, MMMM dd, yyyy', 'fr-fr')

--mardi, avril 03, 2012

 

SELECT     FORMAT(@d, N'dddd, MMMM dd, yyyy', 'en-US')

--Tuesday, April 03, 2012

 

 

l  숫자 형식에 대한 부분을 알아보도록 하겠습니다.

 

DECLARE @i INT=62500

SELECT price = FORMAT(@i, 'C')

--₩62,500

 

SELECT price = FORMAT(@i, 'C','en-US')

--$62,500.00

 

SELECT price = FORMAT(@i, 'N')

--62,500.00

 

SELECT price = FORMAT(0.625, 'P')

--62.50 %

 

 

위 내용을 보면 .NET 코딩과 유사하다는 것을 알 수 있습니다. 응용 프로그램에서 추가적인 처리를 하지 않고도 날짜, 숫자 형식의 문자열 포맷팅을 T-SQL에서도 FORMAT 함수를 통해 지원할 수 있습니다.

 

 

댓글