PARSE (Transact-SQL)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
конечную точку аналитики SQL Azure Synapse Analytics
в хранилище Microsoft Fabric в Microsoft Fabric
Возвращает результат выражения, преобразованного в запрошенный тип данных в SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
PARSE ( string_value AS data_type [ USING culture ] )
Аргументы
string_value
Значение nvarchar(4000), представляющее форматированное значение для преобразования в указанный тип данных.
Значение string_value должно быть допустимым представлением требуемого типа данных, в противном случае инструкция PARSE выдаст ошибку.
data_type
Литеральное значение, представляющее тип данных, запрошенный в качестве для результата.
Язык и региональные параметры
Дополнительная строка, идентифицирующая культуру, в которой форматируется string_value.
Если аргумент culture не указан, то используется язык текущего сеанса. Язык может быть задан неявно или явно с использованием инструкции SET LANGUAGE. язык и региональные параметры, поддерживаемые платформа .NET Framework, не ограничиваются языками, явно поддерживаемыми SQL Server. Если аргумент culture недопустим, то PARSE выдаст ошибку.
Типы возвращаемых данных
Возвращает результат выражения, переведенный в требуемый тип данных.
Замечания
Значения NULL, передаваемые в качестве аргументов для PARSE, рассматриваются двумя способами:
Если передается константа NULL, возникает ошибка. Значение NULL не может быть преобразовано в другой тип данных с учетом культуры.
При передаче параметра со значением NULL во время выполнения происходит возврат значения NULL во избежание отмены всего пакета.
Используйте инструкцию PARSE только для преобразования данных из строкового типа в типы даты или времени и числовой тип. Для общих преобразований типов данных продолжайте использовать CAST и CONVERT. Следует учитывать, что разбор строкового значения приводит к некоторой потере производительности.
Для выполнения инструкции PARSE требуется среда CLR платформы .NET Framework.
Данная функция не будет работать удаленно, поскольку возможность ее работы зависит от наличия среды CLR. Удаленный вызов функции, требующей наличия среды CLR, приведет к ошибке на удаленном сервере.
Дополнительные сведения о параметре data_type
Значения параметра data_type ограничиваются списком типов, приведенным в следующей таблице, включая стили. Представленные сведения о стилях позволяют определить, какие типы шаблонов разрешены. Дополнительные сведения о стилях см. в документации по платформе .NET Framework для перечислений System.Globalization.NumberStyles и DateTimeStyles.
Категория | Тип | Тип .NET Framework | Используемые стили |
---|---|---|---|
Числовое | 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 |
Примеры
А. PARSE в datetime2
SELECT PARSE('Monday, 13 December 2010' AS datetime2 USING 'en-US') AS Result;
Вот результирующий набор.
Result
---------------
2010-12-13 00:00:00.0000000
(1 row(s) affected)
B. PARSE с символом денежной единицы
SELECT PARSE('€345,98' AS money USING 'de-DE') AS Result;
Вот результирующий набор.
Result
---------------
345.98
(1 row(s) affected)
В. PARSE с неявным заданием языка
-- The English language is mapped to en-US specific culture
SET LANGUAGE 'English';
SELECT PARSE('12/16/2010' AS datetime2) AS Result;
Вот результирующий набор.
Result
---------------
2010-12-16 00:00:00.0000000
(1 row(s) affected)