TRY_PARSE(Transact-SQL)
SQL Server 2012에서 요청한 데이터 형식으로 변환된 식 결과를 반환하거나 캐스팅에 실패한 경우 null을 반환합니다. TRY_PARSE는 문자열에서 날짜/시간 및 숫자 형식으로 변환하는 경우에만 사용하십시오.
구문
TRY_PARSE ( string_value AS data_type [ USING culture ] )
인수
string_value
지정된 데이터 형식으로 구문 분석할 형식이 지정된 값을 나타내는 nvarchar(4000) 값입니다.string_value는 요청한 데이터 형식에 대한 유효한 표현이어야 합니다. 그렇지 않으면 TRY_PARSE는 null을 반환합니다.
data_type
결과에 대해 요청된 데이터 형식을 나타내는 리터럴입니다.culture
string_value의 형식을 지정하는 데 사용되는 culture를 식별하는 선택적 문자열입니다.culture 인수를 지정하지 않으면 현재 세션의 언어가 사용됩니다. 이 언어는 SET LANGUAGE 문을 사용하여 명시적으로 또는 암시적으로 설정됩니다. culture에 지정할 수 있는 culture는 SQL Server에서 명시적으로 지원하는 언어로만 국한되지 않으며 .NET Framework에서 인수로 지원하는 모든 culture를 지정할 수 있습니다. culture 인수가 유효하지 않을 경우 PARSE는 오류를 발생시킵니다.
반환 형식
요청한 데이터 형식으로 변환된 식 결과를 반환하거나 캐스팅에 실패한 경우 Null을 반환합니다.
주의
TRY_PARSE는 문자열에서 날짜/시간 및 숫자 형식으로 변환하는 경우에만 사용하십시오. 일반 형식 변환의 경우 이전처럼 CAST나 CONVERT를 사용합니다. 문자열 값을 구문 분석할 경우 성능에 영향을 주게 됩니다.
TRY_PARSE는 .NET Framework CLR(공용 언어 런타임)이 설치되어 있어야 사용할 수 있습니다.
이 함수는 CLR이 있어야 실행되므로 원격에서 실행할 수 없습니다. CLR이 설치되어 있어야만 실행되는 함수를 원격에서 호출할 경우 원격 서버에서 오류가 발생합니다.
data_type 매개 변수에 대한 자세한 정보
data_type 매개 변수의 값은 다음 표에 나온 형식 및 스타일로 제한됩니다. 허용되는 패턴을 쉽게 알 수 있도록 스타일 정보가 나와 있습니다. 스타일에 대한 자세한 내용은 .NET Framework 설명서에서 System.Globalization.NumberStyles 및 DateTimeStyles 열거형을 참조하십시오.
범주 |
유형 |
.NET 형식 |
사용되는 스타일 |
---|---|---|---|
숫자 |
bigint |
Int64 |
NumberStyles.Number |
숫자 |
int |
Int32 |
NumberStyles.Number |
숫자 |
smallint |
Int16 |
NumberStyles.Number |
숫자 |
tinyint |
Byte |
NumberStyles.Number |
숫자 |
decimal |
Decimal |
NumberStyles.Number |
숫자 |
numeric |
Decimal |
NumberStyles.Number |
숫자 |
float |
Double |
NumberStyles.Float |
숫자 |
real |
Single |
NumberStyles.Float |
숫자 |
smallmoney |
Decimal |
NumberStyles.Currency |
숫자 |
money |
Decimal |
NumberStyles.Currency |
날짜 및 시간 |
date |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
날짜 및 시간 |
time |
TimeSpan |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
날짜 및 시간 |
datetime |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
날짜 및 시간 |
smalldatetime |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
날짜 및 시간 |
datetime2 |
DateTime |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
날짜 및 시간 |
datetimeoffset |
DateTimeOffset |
DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
culture 매개 변수에 대한 자세한 정보
다음 표에서는 SQL Server 언어와 .NET Framework culture 간 매핑을 보여 줍니다.
전체 이름 |
별칭 |
LCID |
해당 culture |
---|---|---|---|
us_english |
영어 |
1033 |
en-US |
Deutsch |
독일어 |
1031 |
de-DE |
Français |
프랑스어 |
1036 |
fr-FR |
日本語 |
일본어 |
1041 |
ja-JP |
Dansk |
덴마크어 |
1030 |
da-DK |
Español |
스페인어 |
3082 |
es-ES |
Italiano |
이탈리아어 |
1040 |
it-IT |
Nederlands |
네덜란드어 |
1043 |
nl-NL |
Norsk |
노르웨이어 |
2068 |
nn-NO |
Português |
포르투갈어 |
2070 |
pt-PT |
Suomi |
핀란드어 |
1035 |
fi |
Svenska |
스웨덴어 |
1053 |
sv-SE |
čeština |
체코어 |
1029 |
Cs-CZ |
magyar |
헝가리어 |
1038 |
Hu-HU |
polski |
폴란드어 |
1045 |
Pl-PL |
română |
루마니아어 |
1048 |
Ro-RO |
hrvatski |
크로아티아어 |
1050 |
hr-HR |
slovenčina |
슬로바키아어 |
1051 |
Sk-SK |
slovenski |
슬로베니아어 |
1060 |
Sl-SI |
ελληνικά |
그리스어 |
1032 |
El-GR |
български |
불가리아어 |
1026 |
bg-BG |
русский |
러시아어 |
1049 |
Ru-RU |
Türkçe |
터키어 |
1055 |
Tr-TR |
British |
영어(영국) |
2057 |
en-GB |
eesti |
에스토니아어 |
1061 |
Et EE |
latviešu |
라트비아어 |
1062 |
lv-LV |
lietuvių |
리투아니아어 |
1063 |
lt-LT |
Português (Brasil) |
브라질어 |
1046 |
pt-BR |
繁體中文 |
중국어(번체) |
1028 |
zh-TW |
한국어 |
한국어 |
1042 |
Ko-KR |
简体中文 |
중국어(간체) |
2052 |
zh-CN |
아랍어 |
아랍어 |
1025 |
ar-SA |
ไทย |
태국어 |
1054 |
Th-TH |
예
1.TRY_PARSE의 간단한 예
SELECT TRY_PARSE('Jabberwokkie' AS datetime2 USING 'en-US') AS Result;
결과 집합은 다음과 같습니다.
Result
---------------
NULL
(1 row(s) affected)
2.TRY_PARSE를 사용하여 Null 검색
SELECT
CASE WHEN TRY_PARSE('Aragorn' AS decimal USING 'sr-Latn-CS') IS NULL
THEN 'True'
ELSE 'False'
END
AS Result;
결과 집합은 다음과 같습니다.
Result
---------------
True
(1 row(s) affected)
3.TRY_PARSE 및 암시적 culture 설정과 함께 IIF 사용
SET LANGUAGE English;
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;
결과 집합은 다음과 같습니다.
Result
---------------
False
(1 row(s) affected)