Photo by
akisuke0925
【第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 の小ネタも、皆さんの役立つかもしれません。
今回は以上です。
