TRY_PARSE y TRY_CONVERT
Cuando usa CONVERT o PARSE, 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/
We absolutely love your blog and find most of
your post’s to be what precisely I’m looking for.
can you offer guest writers to write content for you? I wouldn’t mind creating
a post or elaborating on a few of the subjects you write in relation to here.
Again, awesome site!