处理无效日期

SQL Server 中的时间序列分析

Maham Faisal Khan

Senior Data Science Content Developer

错误安全的日期转换函数

"不安全"的函数

CAST()
CONVERT()
PARSE()

安全函数

TRY_CAST()
TRY_CONVERT()
TRY_PARSE()
SQL Server 中的时间序列分析

一切顺利时

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

结果:

January8US August1FR
2019-01-08 2019-08-01
SQL Server 中的时间序列分析

一切出错时

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

使用区域设置 'fr-fr' 将字符串值 '01/13/2019' 转换为日期类型时出错。
SQL Server 中的时间序列分析

在一切出错时做对

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
SQL Server 中的时间序列分析

安全的代价

使用安全方法并不比使用不安全方法更耗费资源。

SQL Server 中的时间序列分析

安全的代价

CAST() 与 CONVERT() 的速度大致相同。

SQL Server 中的时间序列分析

安全的代价

PARSE() 比 CAST() 和 CONVERT() 慢得多。

SQL Server 中的时间序列分析

安全的代价

这些是每秒指标,因此呈线性扩展。

SQL Server 中的时间序列分析

Passons à la pratique !

SQL Server 中的时间序列分析

Preparing Video For Download...