Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint в Microsoft Fabric
Warehouse в Microsoft Fabric
SQL база данных в 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.
Если аргумент языка и региональных параметров не указан, используется язык текущего сеанса. Этот язык устанавливается либо неявно, либо явно с помощью этого SET LANGUAGE утверждения.
Культура принимает любую культуру, поддерживаемую .NET Framework. Это не ограничивается языками, явно поддерживаемыми SQL Server.
Если аргумент языка и региональных параметров недействителен, 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 |
| Числовое | реальный | Single |
NumberStyles.Float |
| Числовое | smallmoney | Decimal |
NumberStyles.Currency |
| Числовое | деньги | Decimal |
NumberStyles.Currency |
| Дата и время | дата | 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 языками и региональными параметрами.
| ФИО | Псевдоним | 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 | Британский английский | 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 |
Примеры
А. Базовый пример 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
В. Используйте IIF с TRY_PARSE и неявной культурой
SET LANGUAGE English;
SELECT IIF (TRY_PARSE ('01/01/2011' AS DATETIME2) IS NULL, 'True', 'False') AS Result;
Этот запрос возвращает результат .False