SalesforceのDATE()関数とは?日付値変換の書式サンプルや注意点をご紹介
IT・技術関連
更新日:2024.09.05


Salesforceの日付値変換、DATE()関数とは
DATE()関数は、年、月、日を指定してDate値を返す、つまり、日、月、年を目的の日付値に変換するのに使用します。
たとえば、Salesforce上にて下記のように指定の日付での日付値を求めたり、一定の日程で予定されている日付の日付値を求めるのに使用します。
①2021年12月31日の日付値を求める
DATE( 2021, 12, 31 )
②現在の年の今日から3か月後の最初の日の日付値を求める
DATE( YEAR( TODAY() ), MONTH( TODAY() ) + 3, 1)
ただし、どちらの場合であっても、入力されたY/M/D値が無効な日付になる場合、DATE()関数はエラーを返すため、エラーチェックが必須となります。
Salesforce上におけるDATE()関数等により年月日を求める

うるう日2月29日のエラーチェック・サンプル(うるう年かどうかのチェック)
月日に2月29日(うるう日)を指定する際に、該当年がうるう年かどうかをチェックし、該当しない場合は3月1日を返すサンプルです。 グレゴリオ暦における、うるう年は基本的に「400で割り切れる年」、もしくは「4で割り切れてかつ100で割り切れない年」となります。IF(
AND(
MONTH( date ) = 2,
DAY( date ) = 29,
NOT(
OR(
MOD( YEAR( date ), 400 ) = 0,
AND(
MOD( YEAR( date ), 4 ) = 0,
MOD( YEAR( date ), 100 ) != 0
)
)
)
),
DATE( YEAR( date ) + num_years, 3, 1),
DATE( YEAR( date ) + num_years, MONTH( date ), DAY( date ) )
)
31日ではない月をまたぐ際の日数追加のエラーチェック・サンプル
この数式の例では、特定の日付に2か月を追加します。その際の以下のとおり、検証(エラーチェック)を行います。 ・追加された後の日付が2月で、日が28より大きい場合、3月1日を返します。(うるう年の判断はしていないので、うるう年の検証も必要な場合は別途、処理の追加が必須となります) ・追加された後の日付が4月、6月、9月、または11月で、日が30より大きい場合、翌月の最初の日を返します。 それ以外の場合は、将来の月の正しい日付を返します。DATE(
YEAR( date ) + FLOOR( ( MONTH ( date ) + 2 - 1 ) / 12 ),
MOD( MONTH ( date ) + 2 - 1 +
IF( DAY ( date ) > CASE( MOD( MONTH( date ) + 2 - 1, 12 ) + 1,
2, 28,
4, 30,
6, 30,
9, 30,
11, 30,
31 ), 1, 0 ), 12 ) + 1,
IF( DAY( date ) > CASE( MOD( MONTH( date ) + 2 - 1, 12 ) + 1,
2, 28,
4, 30,
6, 30,
9, 30,
11, 30,
31 ),
1, DAY( date )
)
)
日付が年度の何週目かを確認する数式サンプル
現在何週目かを確認するには、現在の年度の経過日数を算出して7で割ります。 IF()ステートメントは、この数式で返された週数が52を超えていないことを確認します。対象の日付がその年の12月31日の場合は、52週を超えて1月の第1週になる場合でも、この式では52が返されます。IF(
CEILING( ( date - DATE( YEAR( date ), 1, 1) + 1) / 7) > 52,
52,
CEILING( ( date - DATE( YEAR( date ), 1, 1) + 1) / 7)
)
月の最終日を確認する数式サンプル
月の最終日を確認する簡単な方法は、翌月の最初の日を調べ、そこから1日差し引くことです。IF(
MONTH( date ) = 12,
DATE( YEAR( date ), 12, 31 ),
DATE( YEAR( date ), MONTH ( date ) + 1, 1 ) - 1
)
特定の曜日の次回の日付を確認する数式サンプル
指定した日付以降に特定の曜日となる直近の日付を確認するには、dateとday_of_weekの差の日数を取得することで可能です。 この日数は0~6の数値で示され、0が日曜日、6が土曜日を表し、この差を現在の日付に加えれば、day_of_weekの日付を確認できます。 この数式の IF()ステートメントは、day_of_weekがdate値の曜日より前の場合に(date が木曜日で、day_of_weekが月曜日の場合)、日数の差に7を加算します。date + ( day_of_week - MOD( date - DATE( 1900, 1, 7 ), 7 ) )
+
IF(
MOD( date - DATE( 1900, 1, 7 ), 7 ) >= day_of_week,
7,
0
)
Salesforceにおける、DATE()関数以外の主な日付と時刻の関数

日付/時間と日付間の変換
Dateデータ型とDate/Timeデータ型は代替不能なため同時に処理換算できません。よって日付値と日付/時間値を含む演算を行う場合は、値を変換してデータ型を揃える必要があります。 一定の関数(YEAR()、MONTH()、DAY() など)は日付値でしか処理できないため、最初に日付/時間値を変換する必要があります。 DATEVALUE(date/time)関数を使用すると、日付/時間の日付値のみが返されます。 以下のように、日付/時間またはテキスト値を取り、日付を返します。DATEVALUE("2015-03-17")
日付/時刻と時刻の間の変換
TIMEVALUE()関数は、24時間制を使用して、Timeデータ型の値を「HH:MM:SS.MS」(時:分:秒.ミリ秒)形式で返します。 数値H/M/S/MS値とHOUR()、MINUTE()、SECONDS()、およびMILLISECONDS()機能が有効なパラメータです。TIMEVALUE("17:30:00.000")
月単位での日時追加
ADDMONTHS() 関数は、月単位での追加日時換算を行うときに使用します。また、算術演算を行うときに月の最終日を考慮します。 つまり、月の最終日が30日である場合、この日付に1か月を加算すると、結果は翌月の最終日になります。この結果の値が31日である場合もあります。同様に、うるう年の2月28日に1か月を加算すると3月31日になります。ADDMONTHS(Date__c, Num_Years__c * 12)
現在の日付の取得
TODAY()関数は、現在の日付を日付データ型として返します。TODAY()
たとえば、今日の3日後の日付を返す数式を作成すると以下となります。
TODAY() + 3
SalesforceにおけるDATE()関数をはじめとした日時関連の関数を活用しよう!

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。