次の方法で共有


DateAdd、 DateDiff、および TimeZoneOffset 関数

Functions 適用対象
DateAdd
DateDiff
Power Platform CLI Dataverse 関数 Power Pages モデル駆動型アプリ Dataverse 数式列、Copilot Studio デスクトップ フローキャンバス アプリ
TimeZoneOffset Power Platform CLI Dataverse 関数 Power Pages モデル駆動型アプリ Copilot Studio デスクトップ フローキャンバス アプリ
Function 適用対象
DateAdd
DateDiff
TimeZoneOffset

日付/時刻値の差を加算または検索し、ローカル時刻と UTC との間で変換します。

内容

DateAdd関数は、日付/時刻値に複数の単位を追加します。 結果は、新しい日付/時刻値です。 負の値を指定して、日付/時刻値から単位数を減算することもできます。

DateDiff関数は、2 つの日付/時刻値の差を返します。 この結果は、単位の整数です。

どちらの関数も、単位は TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.Quarters、または TimeUnit.Years にすることができます。 既定では、どちらの関数も単位として TimeUnit.Days を使用します。

TimeZoneOffset関数は、ユーザーの現地時刻と UTC (世界協定時刻) の間の分数を返します。

DateAddTimeZoneOffsetと共に使用して、ユーザーの現地時刻と UTC (世界協定時刻) を変換できます。 TimeZoneOffsetを追加すると、現地時刻が UTC に変換され、減算 (負の値を加算) すると UTC から現地時刻に変換されます。

詳細については、日付、時刻、および DateTime データの種類 および 日付と時刻の操作 も参照してください。

構文

DateAdd( DateTime, Addition [, Units ] )

  • DateTime - 必須。 操作する日付/時刻値。
  • 追加 - 必須。 DateTime単位で追加する数値。
  • 単位 - オプション。 追加する 単位 のタイプ: TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.Quarters、または TimeUnit.Years。 指定しない場合は、TimeUnit.Days が使用されます。

DateDiff( StartDateTime, EndDateTime [, Units ] )

  • StartDateTime - 必須。 開始の日付/時刻値。
  • EndDateTime - 必須。 終了の日付/時刻値。
  • 単位 - オプション。 減算する 単位 のタイプ: TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.Quarters、または TimeUnit.Years。 指定しない場合は、TimeUnit.Days が使用されます。

TimeZoneOffset( [ DateTime ] )

  • DateTime - オプション。 オフセットを返す日付/時刻値。 既定では、現在の日付/時刻が使用されます。

これらすべての例では、現在の日付および時刻を 2013 年 7 月 15 日、午後 1:02 と想定しています。

簡単 DateAdd

計算式 内容 結果
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
現在の日付および時刻に 3 日 (既定の単位) を追加します。 "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
現在の日付および時刻に 4 時間を追加します。 "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Today は時間のコンポーネントを返さないため、現在の日付に 1 か月を、時間なしで追加します。 "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
現在の日付と時刻から 30 分を減算します。 "15-07-2013 12:32"

簡単 DateDiff

計算式 内容 結果
DateDiff( Now(), DateValue("1/1/2014") ) TimeUnit.Days の既定の単位で 2 つの単位の差を返します 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) TimeUnit.Monthsで 2 つの値の差を返します 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) 現在の日付/時刻と現在の日付のみ (時間なし) の差を分で返します。 NowToday よりも後であるため、結果は負になります。 -782

小数の結果による日付の違い

関数 DateDiff は、減算する単位の整数のみを返し、指定された単位で有効桁数を指定します。 より高い精度で差を計算するには、以下の例のように、より小さな単位を使用して、結果を適切に変換します。

計算式 内容 結果
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) 分/秒は無視され、差は 1 時間までの時間に基づいています。 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 差には分が使用され、結果は 60 で除算されて時間の差が得られます。 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 差には分と秒が使用され、結果は 3600 で除算されて時間の差が得られます。 0.51

UTC に変換する

UTC (世界協定時刻) に変換するには、指定した時刻の TimeZoneOffset を追加します。

たとえば、現在の日付および時刻が太平洋夏時間 (PDT, UTC-7) の 2013 年 7 月 15 日、午後 1:02 であると仮定します。 UTC で現在の時刻を確認するには、以下を使用します。

  • DateAdd(Now()、 TimeZoneOffset()、TimeUnit.Minutes )

TimeZoneOffset は既定で現在の時刻に設定されるため、引数を渡す必要はありません。

結果を確認するには、dd-mm-yyyy hh:mm 形式の Text 関数を使用して、15-07-2013 20:02 を返します。

UTC から変換する

UTC から変換するには、指定した時刻の TimeZoneOffset (負の値を加算) を減算します。

たとえば、2013 年 7 月 15 日、午後 8:02 という UTC の日付と時刻が、StartTime という名前の変数に格納されていると仮定します。 ユーザーのタイム ゾーンの時間を調整するには、以下を使用します。

  • DateAdd( StartTime、 -TimeZoneOffset( StartTime ), TimeUnit.Minutes )

オフセットを加算するのではなく、減算する TimeZoneOffset 前の負の符号に注意してください。

結果を確認するには、dd-mm-yyyy hh:mm の形式で Text 関数を使用すると、太平洋夏時間の場合は 15-07-2013 13:02 になります。