PARSE() e TRY_PARSE() são novas funções introduzidas no SQL Server Denali.
PARSE() converte o objeto para o tipo de dados especificado, caso contrário ele gera um erro. Já a TRY_PARSE(), tenta converter o objeto para o tipo de dados especificado, caso contrário ele retorna NULL.
Por exemplo, vamos tentar converter o valor abaixo para inteiro:
SELECT PARSE('10.20' AS INT) AS Result
SELECT TRY_PARSE('10.20' AS INT) AS Result
Result ———– Msg 9819, Level 16, State 1, Line 1 Error converting string value '10.20' into data type int using culture ”. Result ———– NULL
DECLARE @NumList TABLE
(
Num1 VARCHAR(5)
)
INSERT INTO @NumList VALUES ('10'),('10.20'),('11')
SELECT CASE WHEN TRY_PARSE(Num1 AS INT) IS NULL THEN 0
ELSE PARSE(Num1 AS INT)
END AS Result
FROM @NumList
Result ———– 10 0 11
SELECT TRY_PARSE('27 juillet, 2011' AS DATETIME)
AS 'Inglês',
TRY_PARSE('27 juillet, 2011' AS DATETIME USING 'fr-FR')
AS 'Francês'
Inglês Francês ———————– ———————– NULL 2011-07-27 00:00:00.000
Autor/Fonte: SQL & Me
Comente e interaja!