Handling invalid dates

Analyse de séries temporelles dans SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

Error-safe date conversion functions

"Unsafe" Functions

CAST()
CONVERT()
PARSE()

Safe Functions

TRY_CAST()
TRY_CONVERT()
TRY_PARSE()
Analyse de séries temporelles dans SQL Server

When everything goes right

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

Results:

January8US August1FR
2019-01-08 2019-08-01
Analyse de séries temporelles dans SQL Server

When everything goes wrong

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**

Error converting string value '01/13/2019' into data type date using culture 'fr-fr'.
Analyse de séries temporelles dans SQL Server

Doing right when everything goes wrong

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
Analyse de séries temporelles dans SQL Server

The cost of safety

Using safe methods is no more expensive than using unsafe methods.

Analyse de séries temporelles dans SQL Server

The cost of safety

CAST() and CONVERT() functions run at approximately the same speed.

Analyse de séries temporelles dans SQL Server

The cost of safety

PARSE() functions are much slower than CAST() and CONVERT().

Analyse de séries temporelles dans SQL Server

The cost of safety

These are per-second measures, which means they scale linearly.

Analyse de séries temporelles dans SQL Server

Let's practice

Analyse de séries temporelles dans SQL Server

Preparing Video For Download...