일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오가 찾아준 헤어샵
- 카카오헤어샵
- 함수
- Google Map
- 트래커
- 맛집
- 술안주
- Lock
- 트레커
- 하남맛집
- 박근혜 탄핵
- C#
- 재테크
- 초대장
- 신장사거리
- 하남
- 파리바게트 청라 SK점
- 최신트래커
- MSsql
- db
- jquery
- 티스토리
- 국정화 반대
- 국정화
- .net
- javascript
- 동적쿼리
- 토렌트
- 내장함수
- 파리바게트
- Today
- Total
featur
[MSSQL] FORMAT (Sql Server 2012 이상) 본문
[MSSQL] FORMAT (Sql Server 2012 이상)
FORMAT(Transact-SQL)
SQL Server (2012 부터 사용 가능) 에서 지정된 형식 및 선택적 culture로 서식이 지정된 값을 반환합니다.
FORMAT ( value, format [, culture ] )
bigint | Int64 | |
int | Int32 | |
smallint | Int16 | |
tinyint | Byte | |
decimal | SqlDecimal | |
numeric | SqlDecimal | |
float | Double | |
real | Single | |
smallmoney | Decimal | |
money | Decimal | |
date | ||
time | TimeSpan | |
datetime | ||
smalldatetime | ||
datetime2 | DateTime | |
datetimeoffset | DateTimeOffset |
1. 간단한 FORMAT 예
DECLARE @d DATETIME = '10/01/2011'; SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result'; SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result' ,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result' ,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result' ,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result'
,FORMAT ( @d, 'D', 'ko-kr' ) AS 'korea Result'
,FORMAT ( @d, 'yyyy년 MM월 dd일', 'ko-kr' ) AS 'korea (custom) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result ---------------- ----------------------------- ------------- ------------------------------------- 10/1/2011 01/10/2011 01.10.2011 2011/10/1 (1 row(s) affected) US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result ---------------------------- ----------------------------- ----------------------------- --------------------------------------- Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日 (1 row(s) affected)
2. 사용자 지정 서식 문자열이 포함된 FORMAT
다음 예에서는 사용자 지정 서식을 지정하여 숫자 값의 서식을 지정하는 방법을 보여 줍니다.
-- Current date is September 27 2012.
DECLARE @d DATETIME = GETDATE();
SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result'
,FORMAT(123456789,'###-##-####') AS 'Custom Number Result';
-- Current date is September 27 2012. DECLARE @d DATETIME = GETDATE(); SELECT FORMAT( @d, 'dd/MM/yyyy', 'en-US' ) AS 'DateTime Result' ,FORMAT(123456789,'###-##-####') AS 'Custom Number Result';
결과 집합은 다음과 같습니다.
DateTime Result Custom Number Result
-------------- --------------------
27/09/2012 123-45-6789
(1 row(s) affected)
DateTime Result Custom Number Result -------------- -------------------- 27/09/2012 123-45-6789 (1 row(s) affected)
3. 숫자 유형이 있는 FORMAT
5 개의 행을 반환 하는 다음 예제는 Sales.CurrencyRate 테이블에 AdventureWorks2012 데이터베이스입니다.
SELECT TOP(5)CurrencyRateID, EndOfDayRate ,FORMAT(EndOfDayRate, 'N', 'en-us') AS 'Number Format' ,FORMAT(EndOfDayRate, 'G', 'en-us') AS 'General Format' ,FORMAT(EndOfDayRate, 'C', 'en-us') AS 'Currency Format' FROM Sales.CurrencyRate ORDER BY CurrencyRateID;
CurrencyRateID EndOfDayRate Numeric Format General Format Currency Format -------------- ------------ -------------- -------------- --------------- 1 1.0002 1.00 1.0002 $1.00 2 1.55 1.55 1.5500 $1.55 3 1.9419 1.94 1.9419 $1.94 4 1.4683 1.47 1.4683 $1.47 5 8.2784 8.28 8.2784 $8.28 (5 row(s) affected)
SELECT TOP(5)CurrencyRateID, EndOfDayRate ,FORMAT(EndOfDayRate, 'N', 'de-de') AS 'Numeric Format' ,FORMAT(EndOfDayRate, 'G', 'de-de') AS 'General Format' ,FORMAT(EndOfDayRate, 'C', 'de-de') AS 'Currency Format' FROM Sales.CurrencyRate ORDER BY CurrencyRateID;
CurrencyRateID EndOfDayRate Numeric Format General Format Currency Format -------------- ------------ -------------- -------------- --------------- 1 1.0002 1,00 1,0002 1,00 € 2 1.55 1,55 1,5500 1,55 € 3 1.9419 1,94 1,9419 1,94 € 4 1.4683 1,47 1,4683 1,47 € 5 8.2784 8,28 8,2784 8,28 € (5 row(s) affected)
4. 시간 데이터 유형이 있는 FORMAT
SELECT FORMAT(cast('07:35' as time), N'hh.mm'); --> returns NULL SELECT FORMAT(cast('07:35' as time), N'hh:mm'); --> returns NULL
SELECT FORMAT(cast('07:35' as time), N'hh\.mm'); --> returns 07.35 SELECT FORMAT(cast('07:35' as time), N'hh\:mm'); --> returns 07:35
'개발 > MSSQL' 카테고리의 다른 글
[MSSQL] TRY...CATCH(Transact-SQL) (0) | 2016.12.19 |
---|---|
[MSSQL] IIF (SQL Server 2012 이상) (0) | 2016.12.19 |
[MSSQL] 내장함수 (스칼라 함수) (0) | 2016.12.16 |
[MSSQL] 날짜 형식 ( 포맷 ) 변환 (0) | 2016.12.16 |
[MSSQL] 날짜 형식의 종류 (0) | 2016.12.16 |