Tratando datas inválidas

Análise de Séries Temporais no SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Funções de conversão de data à prova de erro

Funções "inseguras"

CAST()
CONVERT()
PARSE()

Funções seguras

TRY_CAST()
TRY_CONVERT()
TRY_PARSE()
Análise de Séries Temporais no SQL Server

Quando tudo dá certo

SELECT
    PARSE('01/08/2019' AS DATE USING 'en-us') AS January8US,
    PARSE('01/08/2019' AS DATE USING 'fr-fr') AS August1FR;
GO

Resultados:

January8US August1FR
2019-01-08 2019-08-01
Análise de Séries Temporais no SQL Server

Quando tudo dá errado

SELECT
    PARSE('01/13/2019' AS DATE USING 'en-us') AS January13US,
    PARSE('01/13/2019' AS DATE USING 'fr-fr') AS Smarch1FR;
GO
**Msg 9819, Level 16, State 1, Line 1**

Erro ao converter o valor de string '01/13/2019' para o tipo de dados date usando a cultura 'fr-fr'.
Análise de Séries Temporais no SQL Server

Acertando quando tudo dá errado

SELECT
    TRY_PARSE('01/13/2019' AS DATE USING 'en-us') AS January13US,
    TRY_PARSE('01/13/2019' AS DATE USING 'fr-fr') AS Smarch1FR;
GO
January13US Smarch1FR
2019-01-13 NULL
Análise de Séries Temporais no SQL Server

O custo da segurança

Usar métodos seguros não é mais caro que usar métodos inseguros.

Análise de Séries Temporais no SQL Server

O custo da segurança

As funções CAST() e CONVERT() rodam em velocidades semelhantes.

Análise de Séries Temporais no SQL Server

O custo da segurança

As funções PARSE() são bem mais lentas que CAST() e CONVERT().

Análise de Séries Temporais no SQL Server

O custo da segurança

São medidas por segundo, ou seja, escalam linearmente.

Análise de Séries Temporais no SQL Server

Vamos praticar

Análise de Séries Temporais no SQL Server

Preparing Video For Download...