TRY_PARSE (Transact-SQL)
Возвращает результат выражения, преобразованный в запрошенный тип данных, или значение NULL, если привести тип в SQL Server не удается. Используйте инструкцию TRY_PARSE только для преобразования данных из строкового типа в типы даты или времени и числовые типы.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Синтаксические обозначения в 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 Framework; его применение не ограничивается языками, явно поддерживаемыми SQL Server. Если аргумент culture недопустим, инструкция PARSE выдаст ошибку.
Типы возвращаемых данных
Возвращает результат выражения, преобразованный в запрошенный тип данных, или значение NULL, если привести тип не удается.
Замечания
Используйте инструкцию TRY_PARSE только для преобразования данных из строкового типа в типы даты или времени и числовые типы. Для общих преобразований типов данных продолжайте использовать CAST и CONVERT. Следует учитывать, что разбор строкового значения приводит к некоторой потере производительности.
Для выполнения инструкции TRY_PARSE требуется среда CLR платформы .NET Framework.
Данная функция не будет работать удаленно, поскольку возможность ее работы зависит от наличия среды CLR. Удаленный вызов функции, требующей наличия среды CLR, приведет к ошибке на удаленном сервере.
Дополнительные сведения о параметре data_type
Значения параметра data_type ограничиваются списком типов, приведенным в следующей таблице, включая стили. Представленные сведения о стилях позволяют определить, какие типы шаблонов разрешены. Дополнительные сведения о стилях см. в документации по .NET Framework для перечислений System.Globalization.NumberStyles и DateTimeStyles.
Категория |
Тип |
Тип .NET |
Используемые стили |
---|---|---|---|
Numeric |
bigint |
Int64 |
NumberStyles.Number |
Числовой |
int |
Int32 |
NumberStyles.Number |
Числовой |
smallint |
Int16 |
NumberStyles.Number |
Числовой |
tinyint |
Byte |
NumberStyles.Number |
Числовой |
decimal |
Десятичный |
NumberStyles.Number |
Числовой |
numeric |
Десятичный |
NumberStyles.Number |
Числовой |
float |
Двойной |
NumberStyles.Float |
Числовой |
real |
Одиночный |
NumberStyles.Float |
Числовой |
smallmoney |
Десятичный |
NumberStyles.Currency |
Числовой |
money |
Десятичный |
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 |
Дополнительные сведения о параметре культуры
В следующей таблице показаны сопоставления между языками SQL Server и культурами платформы .NET Framework.
Полное имя |
Псевдоним |
LCID |
Конкретная культура |
---|---|---|---|
us_english |
Английский |
1033 |
ru-RU |
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 |
Примеры
А.Простой пример использования TRY_PARSE
SELECT TRY_PARSE('Jabberwokkie' AS datetime2 USING 'ru-RU') AS Result;
Ниже приводится результирующий набор.
Result
---------------
NULL
(1 row(s) affected)
Б.Обнаружение значений NULL с помощью TRY_PARSE
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)
В.Использование функции IIF с TRY_PARSE и неявная установка культуры
SET LANGUAGE English;
SELECT IIF(TRY_PARSE('01/01/2011' AS datetime2) IS NULL, 'True', 'False') AS Result;
Ниже приводится результирующий набор.
Result
---------------
False
(1 row(s) affected)