La función SQL PARSE es una función de conversión SQL utilizada para convertir los datos de cadena al tipo de datos solicitado y devuelve el resultado como una expresión. Se recomienda utilizar esta función SQL PARSE para convertir los datos de cadena a la hora de la fecha, o el tipo de número.
Sintaxis de la función SQL PARSE
La sintaxis de la función SQL Server PARSE es
PARSE (String_Value AS Data_Type )-- For exampleSELECT PARSE (String_Column_Value AS Data_Type USING 'en-US') AS FROM
- Tipo_de_datos: Tipo de datos al que se quiere convertir el Valor_de_cadena
- Cultura: Este es un parámetro opcional. Por defecto, utiliza el idioma actual de la sesión.
Función Parse de SQL Server Ejemplo 1
La función Parse de SQL Server se utiliza principalmente para convertir la cadena en fecha y hora, y valores numéricos. La siguiente consulta de la función Parse parsea enteros o cadenas a decimales y cadenas a DateTime.
Si la función Parse no puede convertir la cadena en el tipo de datos deseado. O si pasamos la cadena no convertible, o si pasamos el valor NULL, entonces esta función Parse devolverá 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 convirtiendo el valor de la cadena en un entero y utilizamos la columna ALIAS en SQL Server para nombrarlo como ‘Resultado’.
SELECT TRY_PARSE(@str AS INT) AS Result;
En la siguiente línea, utilizamos la función PARSE de SQL directamente en el valor de la cadena y lo convertimos en un valor decimal con precisión 2
SELECT PARSE('1234' AS DECIMAL(10, 2)) AS Result;
A continuación, estamos convirtiendo la cadena a DateTime y datetime2 Data Type.
SELECT PARSE('06/03/2017' AS DATETIME) AS Result; SELECT PARSE('06/03/2017' AS DATETIME2) AS Result;
Ejemplo de función Parse 2
En este ejemplo de función Parse, trabajaremos con valores NULL y cadenas no convertibles.
-- SQL PARSE FUNCTION Example DECLARE @strval AS VARCHAR(50)SET @strval = NULLSELECT PARSE(@strval AS INT) AS Result;
Utilicemos lo que sucede si pasamos el valor NULL como el directo input
SELECT PARSE(NULL AS INT) AS Result;
Intentamos convertir la cadena ‘Tutorial Gateway’ a fecha hora. No es posible, por lo que esta función parse devuelve Error como salida.
SELECT PARSE('Tutorial Gateway' AS DATETIME USING 'en-US') AS Result;