メインコンテンツへスキップ
見出し画像
Photo byakisuke0925

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

    Nobuyuki Watanabe

    企業が管理している顧客プロファイルによっては「誕生日」のような日付データを「年(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 のトップページはこちら

     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。