見出し画像

【第279回】 無効な日付データを NULL に変換する方法(TRY_CONVERT)

企業が管理している顧客プロファイルによっては「誕生日」のような日付データを「年(Birth_Year)」「月(Birth_Month)」「日(Birth_Day)」の 3 つの数字型の項目に分けて管理している場合があります。

このデータをまとめて日付型に変換しようとすると、例えば、2 月 30 日のようなあり得ない日付が含まれてしまい、Salesforce Marketing Cloud においてオートメーションエラーを引き起こすことがあります。

そんな時に便利なのが、TRY_CONVERT 関数です。この関数を使うと、無効な日付を NULL に変換することができます。

以下のように使用します。

CASE 
    WHEN birth_year BETWEEN 1900 AND 2050 THEN 
        TRY_CONVERT(
            DATE, 
            CONCAT(
                CONVERT(VARCHAR(4), Birth_Year), '-', 
                RIGHT('00' + CONVERT(VARCHAR(2), Birth_Month), 2), '-', 
                RIGHT('00' + CONVERT(VARCHAR(2), Birth_Day), 2)
            ), 
            111
        )
    ELSE NULL 
END AS [Birth_Date]

いかがでしたでしょうか。

たまにはこのような SQL の小ネタも、皆さんの役立つかもしれません。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら