TRY_PARSE y TRY_CONVERT

try_parse

Cuando usa  CONVERTPARSE, se puede producir un error si el valor de entrada no puede ser convertido en el tipo de salida especificada.

 Por ejemplo, si 31 de febrero 2012 (una fecha no válida) se pasa a convertir, se devuelve un error de ejecución:

Sentencia con error usando CONVERT  :

SELECT CONVERT(datetime2, ‘20120231’);

  EL resultado es :

Msg 241, Level 16, State 1, Line 1

Conversion failed when converting date and/or time from character string.

SQL Server ofrece funciones de conversión para hacer frente a esto. TRY_PARSE y TRY_CONVERT intentarán una conversión, al igual que CONVERT y PARSE, respectivamente. Sin embargo, en lugar de devolver un error de ejecución, las conversiones fallidas devuelven NULL.

Los siguientes ejemplos comparan PARSE y el comportamiento TRY_PARSE. En primer lugar, PARSE intenta convertir una fecha no válida:

Sentencia usando PARSE:

SELECT PARSE(‘20120231’ AS datetime2 USING ‘en-US’)

El resultado es:

–Msg 9819, Level 16, State 1, Line 1

–Error converting string value ‘sqlserver’ into data type datetime2 using culture ‘en-US’.

En contraste,  TRY_PARSE manejará el error de mejor manera, devolviendo NULL :

Sentencia de ejemplo usando TRY_PARSE:

SELECT TRY_PARSE(‘20120231’ AS datetime2 USING ‘en-US’)

El resultado es:

————————

NULL

Mas información de consultas con SQL Server en el curso https://www.udemy.com/consulta-de-datos-con-sql/

Leave a Reply

Your email address will not be published. Required fields are marked *