2021/02/5

Salesforceにおけるdateデータ型とtoday関数の使用方法と使用例を解説

 
  

Salesforceにおけるdateデータ型とは?

Salesforceにおいて日付を表すデータには、dateデータ型とdate/timeデータ型があり、dateデータ型には日付情報である年、月、日が格納されています。 一方、date/timeデータ型には年、月、日の日付情報と秒単位での時間情報が格納されており、時間情報を含んでいる点がdateデータ型と異なります。 Salesforceでは日程や期間など経過時間の計算、期限の判定などの日付比較といった日付操作において、日付情報や時間情報を元に加減算や論理演算、関数で処理します。 Salesforceには、このように日付情報を操作し返値としてdateデータ型を返す関数が用意されています。

Salesforceにおけるtoday関数とは?

today関数とは今日の日付、すなわちtoday関数を実行した現在の日付をdateデータ型で返す関数です。 日付を操作する関数の中でもtoday関数は今日の日付情報を得るための関数となります。 今日の日付(today関数を実行した現在の日付)を表す文字列の取得や、例えばある日付から今日まで、もしくは今日からある日付までの経過日数の計算、期限確認のための日付の比較等のような、日付情報の操作に必要な情報をdateデータ型で得る場合に利用できます。 それではtoday関数の概要や使用方法などについて見ていきましょう。

Salesforceにおけるtoday関数の使用方法

today関数は所定の構文に従って使用する必要があります。 ここではtoday関数の使用方法として、構文とその使用例、注意事項を解説します。 複数の使用例を元に、各ケースにおけるtoday関数の使用方法を見ていきましょう。注意事項ではtoday関数の返値を、dateデータ型ではなくdate/timeデータ型として取り扱う場合についても確認します。

today関数の構文

today関数は引数に何も指定せずに使用します。 today関数は、下記構文に従い使用することで現在の日付の年、月、日をdateデータ型として返します。
TODAY()
today関数は現在の日付情報を得るものなので、引数を与える必要はありません。

today関数の使用例

today関数の使用例と返値を解説します。 today関数は以下のように使用します。具体的な構文を見ていきましょう。
TODAY()
今日の日付をdateデータ型で返します。
TODAY() + 10
TODAY() - 10
1行目は今日から10日後の日付が、2行目は今日から10日前の日付がdateデータ型で得られます。 today関数は他の関数と組み合わせて応用することもできます。続けて応用例も見ていきましょう。
TEXT(TODAY())
今日の日付を文字列で返します。
YEAR(TODAY())
MONTH(TODAY())
DAY(TODAY())
WEEKDAY(TODAY())
1行目は今日の日付の年を数値で返します。 2行目は今日の日付の月を1から12の数値で返します。 3行目は今日の日付の月を1から31の数値で返します。 4行目は今日の日付の曜日を1から7(1~7は日曜日~土曜日を表す)の数値で返します。
TEXT(YEAR(TODAY())) & ""年"" & TEXT(MONTH(TODAY())) & ""月"" & TEXT(DAY(TODAY())) & ""日""
今日の日付を文字列に変換して連結することで、任意の書式の文字列が得られます。この例では”○年○月○日”形式で得られます。
TODAY() - dateData
今日の日付とdateDataの日数差を数値で得られます。dateDataはdateデータ型で表される任意の日付です。
CASE(
WEEKDAY(TODAY()),
1, ""(日)”,
2, ""(月)"",
3, ""(火)"",
4, ""(水)"",
5, ""(木)"",
6, ""(金)"",
7, ""(土)"",
""該当なし"")
今日の日付の曜日を文字列で返します。この例では、CASE関数と組み合わせることで、WEEKDAY関数から数値で返される曜日情報を文字列に変換しています。 以下に示すように、today関数は論理演算子と組み合わせた数式として使用することもできます。
TODAY() == dateData
dateDataが今日の日付と同じかどうかを比較します。dateDataはdateデータ型で表される任意の日付です。 この数式では、dateDataが表す日付が今日と同じであればtrueを返し、そうでなければfalseを返します。
(TODAY() - dateData) > 100
dateDataが今日の100日前よりも前の日付かどうかを判定します。dateDataはdateデータ型で表される任意の日付です。 この数式では、dateDataが表す日付が今日の100日前よりも前であればtrueを返し、そうでなければfalseを返します。 論理演算子と組み合わせた数式は、例えばこのようにIF関数と組み合わせて使用します。
IF(
(TODAY() - dateData) > 100,
”100日前よりも前”,
”100日以内”
)
dateDataが今日の100日前よりも前の日付であれば””100日前よりも前”を返し、そうでなければ””100日以内””を返します。dateDataはdateデータ型で表される任意の日付です。ただし、この例ではdateDataが過去の日付であることを前提としています。

today関数使用上の注意事項

today関数を使用する場合には、データ型の取り扱いに注意が必要です。 日付を扱うデータ型であるdateデータ型とdate/timeデータ型には互換性がないため、数式内で混同することはできません。従って、dateデータ型をdate/timeデータ型として扱いたい場合、もしくは、その逆の場合は適切にデータ型を変換する必要があります。 today関数はdateデータ型を返しますので、today関数の返値をdate/timeデータ型として取り扱いたい場合には変換が必要です。 データ型の変換について、使用例と合わせて見ていきましょう。

dateデータ型をdate/timeデータ型に変換したい場合

dateデータ型をdate/timeデータ型に変換したい場合はdatetimevalue関数を下記構文に従い使用します。
DATETIMEVALUE(dateData)
引数dateDataにはdate/timeデータ型に変換したいdateデータ型のリテラル値やAPI参照名、数式等を与えます。例えば、以下のように使います。
DATETIMEVALUE(TODAY())
today関数で得たdateデータ型の現在の日付をdate/timeデータ型に変換します。

date/timeデータ型をdateデータ型に変換したい場合

date/timeデータ型をdateデータ型に変換したい場合はdatevalue関数を下記構文に従い使用します。
DATEVALUE(dateTimeData)
引数dateTimeDataにはdateデータ型に変換したいdate/timeデータ型のリテラル値やAPI参照名、数式等を与えます。例えば、以下のように使います。
DATEVALUE(NOW())
now関数で得たdate/timeデータ型の現在の日時をdateデータ型に変換します。

today関数を活用しよう!

今回は、Salesforceにおけるdateデータ型とtoday関数について解説しました。 いくつかの使用例を元にtoday関数の使い方を見てきました。これらの例を見ると、today関数は日付の比較等の日付操作において、様々な使い方ができることが分かります。 今日の日付をdateデータ型で返すtoday関数はSalesforceで使用できる基本的な日付操作関数の一つです。期間の計算や日付の比較等、日付操作においては利用頻度の高い関数ですので、是非活用できるようにしておきましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】