다음을 통해 공유


TRY_PARSE(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric 의 SQL 분석 엔드포인트Microsoft Fabric 의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

요청된 데이터 타입으로 변환된 표현식 결과를 반환하거나, NULL SQL Server에서 캐스트가 실패할 경우를 반환합니다. 문자열 타입에서 날짜/시간, 숫자 타입으로 변환할 때만 사용합니다 TRY_PARSE .

Transact-SQL 구문 표기 규칙

구문

TRY_PARSE ( string_value AS data_type [ USING culture ] )

인수

string_value

지정된 데이터 형식으로 구문 분석할 형식이 지정된 값을 나타내는 nvarchar(4000) 값입니다.

string_value 요청된 데이터 타입을 유효하게 표현해야 하며, 그렇지 않으면 TRY_PARSE null을 반환합니다.

data_type

결과에 대해 요청된 데이터 형식을 나타내는 리터럴입니다.

culture

string_value의 형식을 지정하는 데 사용되는 culture를 식별하는 선택적 문자열입니다.

문화권 인수가 제공되지 않으면 현재 세션의 언어가 사용됩니다. 이 언어는 명시적으로 또는 명시적으로 정의됩니다.SET LANGUAGE Culture 는 .NET 프레임워크가 지원하는 모든 문화를 수용합니다. SQL Server에서 명시적으로 지원하는 언어에만 국한되지 않습니다. 문화권 인수가 유효 PARSE 하지 않으면 오류가 발생합니다.

반환 형식

요청된 데이터 타입 NULL 으로 변환된 표현식 결과를 반환하거나, 캐스트가 실패할 경우를 반환합니다.

설명

문자열 타입에서 날짜/시간, 숫자 타입으로 변환할 때만 사용합니다 TRY_PARSE . 일반적인 타입 변환을 위해서는 계속 또는 CONVERT를 사용 CAST 하세요. 문자열 값을 파싱할 때 일정한 성능 오버헤드가 있다는 점을 기억하세요.

TRY_PARSE .NET Framework 공통 언어 런타임(CLR)의 존재에 의존합니다.

이 함수는 CLR의 존재 여부에 따라 달라지므로 원격으로 사용할 수 없습니다. CLR이 설치되어 있어야만 실행되는 함수를 원격에서 호출할 경우 원격 서버에서 오류가 발생합니다.

매개변수에 대한 data_type 추가 정보

data_type 매개 변수의 값은 다음 표에 나온 형식 및 스타일로 제한됩니다. 허용되는 패턴을 쉽게 알 수 있도록 스타일 정보가 나와 있습니다. 스타일에 대한 자세한 내용은 .NET Framework 문서 System.Globalization.NumberStylesDateTimeStyles 에서 열거 및 열거 항목을 참조하세요.

Category Type .NET 형식 사용되는 스타일
숫자 bigint Int64 NumberStyles.Number
숫자 int Int32 NumberStyles.Number
숫자 smallint Int16 NumberStyles.Number
숫자 tinyint Byte NumberStyles.Number
숫자 십진수 Decimal NumberStyles.Number
숫자 숫자 Decimal NumberStyles.Number
숫자 플로트 Double NumberStyles.Float
숫자 레알 Single NumberStyles.Float
숫자 smallmoney Decimal NumberStyles.Currency
숫자 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 간 매핑을 보여 줍니다.

전체 이름 Alias 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-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(브라질) 브라질어 1046 pt-BR
繁體中文 중국어 번체 1028 zh-TW
한국어 한국어 1042 Ko-KR
简体中文 중국어(간체) 2052 zh-CN
아랍어 아랍어 1025 ar-SA
ไทย 태국어 1054 Th-TH

예제

A. TRY_PARSE의 기본 예시

SELECT TRY_PARSE ('Jabberwokkie' AS DATETIME2 USING 'en-US') AS Result;

이 쿼리는 의 NULL결과를 반환합니다.

B. TRY_PARSE로 널을 감지합니다

SELECT
CASE WHEN TRY_PARSE ('Aragorn' AS DECIMAL USING 'sr-Latn-CS') IS NULL
     THEN 'True'
     ELSE 'False'
END AS Result;

이 쿼리는 의 True결과를 반환합니다.

C. IIF를 TRY_PARSE 및 암시적 문화 설정과 함께 사용하세요

SET LANGUAGE English;

SELECT IIF (TRY_PARSE ('01/01/2011' AS DATETIME2) IS NULL, 'True', 'False') AS Result;

이 쿼리는 의 False결과를 반환합니다.