티스토리 뷰
SQL Server 2012 T-SQL : 변환함수
이번에도 .NET 프로그래밍에서와 유사한 변환 함수를 한번 알아보도록 하겠습니다.
먼저 참조 링크는 아래와 같습니다.
http://msdn.microsoft.com/ko-kr/library/hh230993(v=sql.110).aspx
.NET 프로그래밍에서의 변환 CONVERT 함수는 아래와 같습니다. Parse, TryParse, Convert 등의 클래스나 메서드가 있습니다. 예를 들면 아래와 같습니다.
string s = "9000";
int price = Int32.Parse(s);
int price2 = 0;
if (Int32.TryParse(s, price2))
{
price = price2;
}
물론 다른 DateTime 데이터 형식도 가능하며 CultureInfo를 통한 내용도 지원합니다.
자 그럼 SQL Server 2012에서는 변환 함수가 어떤 내용이 지원될까요? 아래와 같은 함수를 제공하니 변환시 적용하면 아주 좋을 듯 합니다.
l PARSE
PARSE 함수부터 알아보도록 하겠습니다.
PARSE ( string_value AS data_type [ USING culture ] )
요청한 데이터 형식으로 변환된 식 결과를 반환합니다 아래 내용을 보시면 바로 이해가 되실 듯 합니다. 입력값을 적절한 데이터 형식으로 변환하면서 Culture를 적용할 수 있습니다.
SELECT PARSE(N'2012년 4월 11일 09:00, 수요일' AS datetime USING 'ko-KR');
--2012-04-11 09:00:00.000
SELECT PARSE(N'2012년 4월 11일 오전 9시' AS datetime USING 'ko-KR');
--2012-04-11 09:00:00.000
SELECT PARSE(N'2012년 4월 11일, 오전 9시' AS datetime USING 'ko-KR');
--2012-04-11 09:00:00.000
SELECT PARSE('\100000' AS money USING 'ko-KR') AS Result
--100000.00
SELECT PARSE('$100000' AS money USING 'en-US') AS Result
--100000.00
l TRY_PARSE
.NET 프로그래밍도 마찬가지인데 잘못된 데이터에 대한 변환시 오류가 발생합니다. 아래처럼요.
SELECT PARSE('ddd' AS money USING 'en-US') AS Result
메시지 9819, 수준 16, 상태 1, 줄 1
culture 'en-US'을(를) 사용하여 문자열 값 'ddd'을(를) money 데이터 형식으로 변환하는 중 오류가 발생했습니다.
데이터가 잘 들어오면 되지만 아니면 오류가 발생하므로 변환이 되는지 검사를 해볼 수 있는 함수가 TRY_PARSE 입니다. 변환이 가능하면 변환값이 나오고 아니면 NULL을 반환합니다.
.NET 프로그래밍과 사실 거의 유사합니다. 아래 구문을 보시죠.
SELECT TRY_PARSE('ddd' AS money USING 'en-US') AS Result
--NULL
l TRY_CONVERT
TRY_CONVERT ( data_type [ ( length ) ], expression [, style ] )
TRY_PARSE와 유사합니다, 변환이 성공하면 값을 반환하며 실패하면 NULL을 반환합니다. Culture는 없으며 Style을 제공하는 것이 차이점입니다.
SELECT TRY_CONVERT(datetime2, '04/11/2012') AS Result;
--2012-04-11 00:00:00.0000000
SELECT TRY_CONVERT(datetime2, '13/11/2012') AS Result;
--NULL
DECLARE @dt DATETIME = PARSE(N'2012년 4월 11일 오전 9시' AS datetime USING 'ko-KR')
SELECT TRY_CONVERT(varchar(30), @dt,112) AS Result;
--20120411
이상으로 새롭게 제공되는 변환함수에 대한 내용을 정리했습니다.
'SQL' 카테고리의 다른 글
SQL Server 2012 Update for Developers Training Workshop/TTT (0) | 2012.04.25 |
---|---|
SQL Server 2012 T-SQL New Feature –LEAD, LAG (0) | 2012.04.18 |
SQL Server 2012에서의 FORMAT 함수 (0) | 2012.04.04 |
SQL Server 2012 T-SQL: CHOOSE, IIF 논리함수 (0) | 2012.03.28 |
SQL Server 2012의 강화된 T-SQL: 시퀀스(Sequence) (0) | 2012.03.21 |
- Total
- Today
- Yesterday
- 정홍주
- Paginated Report
- sql server 2012
- Power BI Desktop Update
- Windows Azure 업데이트
- 목표
- SharePoint 2013
- Windows Azure
- Visual Studio 2010
- Windows Phone 7
- redJu
- 클라우드
- SharePoint Online
- Power BI
- Power BI Copilot
- Power BI Update
- copilot
- SQL Azure
- SharePoint 2010
- 업데이트
- sharepoint
- Power BI 업데이트
- SharePoint Object Model
- Windows Azure Mobile Services
- Microsoft Fabric
- Cloud
- Power BI Desktop 업데이트
- 페이지를 매긴 보고서
- Power BI Desktop
- hongju
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |