Handling invalid dates

Time Series Analysis in 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()
Time Series Analysis in 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
Time Series Analysis in 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'.
Time Series Analysis in 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
Time Series Analysis in SQL Server

The cost of safety

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

Time Series Analysis in SQL Server

The cost of safety

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

Time Series Analysis in SQL Server

The cost of safety

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

Time Series Analysis in SQL Server

The cost of safety

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

Time Series Analysis in SQL Server

Let's practice

Time Series Analysis in SQL Server

Preparing Video For Download...