A função SQL PARSE é uma função SQL Conversions utilizada para converter os dados String para o tipo de dados solicitado e retorna o resultado como uma expressão. Recomenda-se a utilização desta função SQL PARSE para converter os dados da string para Data hora, ou Tipo de número.
SQL PARSE Function Syntax
A sintaxe da função SQL PARSE do SQL Server é
PARSE (String_Value AS Data_Type )-- For exampleSELECT PARSE (String_Column_Value AS Data_Type USING 'en-US') AS FROM
- Data_Type: Tipo de Dados para o qual se pretende converter o Valor_de_Cadeia
- Cultura: Este é um parâmetro opcional. Por defeito, utiliza a linguagem da sessão actual.
SQL PARSE Function Example 1
The SQL Server Parse Function is mainly used to convert the string into date and time, and numeric values. A seguinte função Parse consulta parses inteiros ou string para decimal e string para DateTime.
Se a função Parse não for capaz de converter a string no tipo de dados desejado. Ou se passarmos a string não conversível, ou se passarmos o valor NULL, então esta função de Parse retornará Error.
-- SQL PARSE FUNCTION Example DECLARE @str AS VARCHAR(50)SET @str = '11122'SELECT PARSE(@str AS INT) AS Result; -- Direct InputsSELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result; SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
Estamos a converter o valor da string para um inteiro e utilizámos a coluna ALIAS no SQL Server para a nomear como ‘Resultado’.
SELECT TRY_PARSE(@str AS INT) AS Result;
Na linha seguinte, utilizámos a função SQL PARSE directamente no valor da string e convertemo-la para valor decimal com precisão 2
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
P>Próximo, estamos a converter a string para DateTime and datetime2 Data Type.
SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
PARSE Function Example 2
Neste exemplo de função Parse, trabalharemos com valores NULL e cadeias não convertíveis.
-- SQL PARSE FUNCTION Example DECLARE @strval AS VARCHAR(50)SET @strval = NULLSELECT PARSE(@strval AS INT) AS Result;
Deixe-nos usar o que acontece se passarmos o valor NULL como o valor directo input
SELECT PARSE(NULL AS INT) AS Result;
Tentamos converter a string ‘Tutorial Gateway’ para a hora da data. Não é possível, portanto esta função parse está a retornar Erro como saída.
SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;