この記事の目次
Salesforceの日付値変換、DATE()関数とは
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/5e9e289364bb3ddfa01b2e7a2998e19f5b1eaf36/065316f3-57ed-4e3d-9ee4-7d5f7ba7eedf.jpg)
DATE( 2021, 12, 31 )
②現在の年の今日から3か月後の最初の日の日付値を求める
DATE( YEAR( TODAY() ), MONTH( TODAY() ) + 3, 1)
ただし、どちらの場合であっても、入力されたY/M/D値が無効な日付になる場合、DATE()関数はエラーを返すため、エラーチェックが必須となります。
Salesforce上におけるDATE()関数等により年月日を求める
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/8c7f204d9ede4027afb1e4450514b993d07cd4a1/660227e9-6a91-4eeb-9c7a-32517e6a6ec4.jpg)
うるう日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()関数以外の主な日付と時刻の関数
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/f5ef944a50653ad198392450d8cdba1dea4885cc/87a2e1f3-0fdc-4110-8476-dbf1920c6d4e.png)
日付/時間と日付間の変換
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()関数をはじめとした日時関連の関数を活用しよう!
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/35243f00-6773-4465-8ac2-7ac2bb3bf90c.jpg)
この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】