無効な日付の扱い

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

文字列値 '01/13/2019' をカルチャ 'fr-fr' で日付型に変換中にエラーが発生しました。
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で学ぶ時系列分析

安全性のコスト

これは1秒あたりの指標で、線形にスケールします。

SQL Serverで学ぶ時系列分析

Let's practice

SQL Serverで学ぶ時系列分析

Preparing Video For Download...