블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

'Format'에 해당되는 글 2

  1. 2020.09.11 DAX – FORMAT 날짜 및 시간 형식
  2. 2012.04.04 SQL Server 2012에서의 FORMAT 함수
2020. 9. 11. 08:00 Power BI

DAX – FORMAT 날짜 및 시간 형식

 

DAX 함수 중 FORMAT (value, format_string) 함수는 입력값(value)을 format_string으로 문자열을 반환해주는 함수입니다. format_string 에는 숫자 형식, 날짜 및 시간 형식을 지정하여 원하는 형식으로 문자열을 반환할 수 있습니다.

현재 사용자 로캘이 한국 경우를 예로 들어서 설명합니다. 현재 사용자 로캘을 확인하려면 날짜 형식의 열을 확인하거나 옵션 및 설정에서 국가별 설정(전역, 현재 파일)을 확인합니다.

 

날짜 및 시간 형식에 대해서 알아보면 먼저 미리 정의된 날짜 및 시각 형식이 있습니다.

구분

FORMAT 결과

“General Date”

2016-07-01 오전 11:00:00

“Long Date”

2020년 7월 1일 금요일

“Short Date”

2020-07-01

“Long Time”

오후 4:35

“Short Time”

16:35

 

예를 들어 새 열을 추가하면서 FullDateAlternateKey 날짜열에 Short Date를 적용한 결과는 아래와 같습니다.

Short Date = FORMAT([FullDateAlternateKey], "Short Date")

자세한 정보는 FORMAT 함수의 미리 정의된 날짜 및 시간 형식을 확인하면 됩니다.

 

보다 구체적인 정의를 위해서는 사용자 지정 날짜 및 시간 형식을 지정할 수 있습니다.

구분

FORMAT 결과

“d”

1~31

“dd”

01~31

“ddd”

일~토

“dddd”

일요일~토요일

“m”

1~12

“MM”

01~12

“mmmm”

1월~12월

“m/d/yyyy”

7-1-2016

 

예를 들어 월을 07처럼 표시하려면 MM을 사용합니다.

MM = FORMAT([FullDateAlternateKey], "MM")

 

위 표에서 다룬 형식 외에 요일을 숫자로, 몇 번째 주인지 등 여러 다른 형식이 있습니다. 자세한 내용은 FORMAT 함수의 사용자 지정 날짜 및 시간 형식에서 확인할 수 있습니다.

 

하지만 “ddd”, “dddd”,”mmmm”의 경우 지역화가 되어 한글로 결과가 나와야 하는데 영문으로 결과가 나타납니다. 영문 도움말에는 Localized 라고 기록되어 있고, 독일 로캘 예제를 설명합니다.

 

 

지역화 이슈를 리포팅했지만, 현재는 한글로 지원되지 않으므로 사용할 때 참고해야 합니다.

FORMAT 함수의 날짜 형식에 관한 내용을 살펴보았습니다.

 

posted by 정홍주

댓글을 달아 주세요

2012. 4. 4. 08:30 SQL

 

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 함수를 통해 지원할 수 있습니다.

 

 

posted by 정홍주

댓글을 달아 주세요

prev 1 next