TRY_PARSE (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL Azure Synapse Analytics в хранилище Microsoft Fabric в Microsoft Fabric
Возвращает результат выражения, преобразованного в запрошенный тип данных или значение 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
Литерал, представляющий тип данных, запрошенный в качестве результата.
Язык и региональные параметры
Дополнительная строка, идентифицирующая культуру, в которой форматируется string_value.
Если аргумент culture не указан, то используется язык текущего сеанса. Язык может быть задан неявно или явно с использованием инструкции SET LANGUAGE. язык и региональные параметры, поддерживаемые платформа .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 | Используемые стили |
---|---|---|---|
Числовое | bigint | Int64 | NumberStyles.Number |
Числовое | INT | Int32 | NumberStyles.Number |
Числовое | smallint | Int16 | NumberStyles.Number |
Числовое | tinyint | Байт | NumberStyles.Number |
Числовое | десятичное | Десятичное число | NumberStyles.Number |
Числовое | numeric | Десятичное число | NumberStyles.Number |
Числовое | с плавающей запятой | Двойной | NumberStyles.Float |
Числовое | real | Одна | NumberStyles.Float |
Числовое | smallmoney | Десятичное число | NumberStyles.Currency |
Числовое | money | Десятичное число | NumberStyles.Currency |
Дата и время | Дата | Дата/время | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дата и время | Время | TimeSpan | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дата и время | datetime | DateTime | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дата и время | smalldatetime | Дата/время | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дата и время | datetime2 | Дата/время | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дата и время | datetimeoffset | DateTimeOffset | DateTimeStyles.AllowWhiteSpaces | DateTimeStyles.AssumeUniversal |
Дополнительные сведения о параметре культуры
В следующей таблице показаны сопоставления языков SQL Server с платформа .NET Framework языками и региональными параметрами.
ФИО | Псевдоним | LCID | Конкретная культура |
---|---|---|---|
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 | British English | 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 'en-US') AS Result;
Вот результирующий набор.
Result
---------------
NULL
(1 row(s) affected)
B. Обнаружение значений 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)
C. Использование функции 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)
См. также
PARSE (Transact-SQL)
Функции преобразования (Transact-SQL)
TRY_CONVERT (Transact-SQL)
CAST и CONVERT (Transact-SQL)