分享方式:


DateAdd、DateDiff 和 TimeZoneOffset 函式

函數 適用於:
日期添加 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Platform CLI
日期差異 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Platform CLI
TimeZoneOffset(時區偏移) 畫布應用 桌面流 模型驅動應用 Power Platform CLI

在日期/時間值新增或尋找差異,並且在當地時間與 UTC 之間轉換。

描述

DateAdd 函式會將單位數新增至日期/時間值。 結果是新的日期/時間值。 您也可以藉由指定負數值以從日期/時間值減去單位數。

DateDiff 函式會傳回兩個日期/時間值之間的差異。 結果是單位整數。

對於這兩個函式,單位可以是 TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.QuartersTimeUnit.Years。 這兩個函式預設會使用 TimeUnit.Days 做為單位。

TimeZoneOffset 函式會傳回使用者當地時間與 UTC (國際標準時間) 之間的分鐘數。

您可以搭配使用 DateAddTimeZoneOffset,在使用者的當地時間與 UTC (國際標準時間) 之間進行轉換。 新增 TimeZoneOffset 會將當地時間轉換為 UTC,而減去 (新增負數) 會從 UTC 轉換為當地時間。

另請參閱 Date、Time 和 DateTime 資料類型處理日期和時間

語法

日期添加日期時間添加 [, 單位 ])

  • DateTime - 必需。 要運作的日期/時間值。
  • 添加 - 必需。 要新曾至 DateTime 中的數目,以 Units 為單位。
  • Units - 可選。 要加上的單位類型:TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.QuartersTimeUnit.Years。 如果未指定,則會使用 TimeUnit.Days

DateDiff開始日期時間結束日期時間 [, 單位 ])

  • StartDateTime - 必需。 開始日期/時間值。
  • EndDateTime - 必需。 結束日期/時間值。
  • Units - 可選。 要減去的單位類型:TimeUnit.MillisecondsTimeUnit.SecondsTimeUnit.MinutesTimeUnit.HoursTimeUnit.DaysTimeUnit.MonthsTimeUnit.QuartersTimeUnit.Years。 如果未指定,則會使用 TimeUnit.Days

TimeZoneOffset([ 日期時間 ])

  • DateTime - 可選。 預計傳回時差的日期/時間值。 根據預設,會使用目前的日期/時間。

範例

在所有範例中,假設目前的日期與時間是 2013 年 7 月 15 日,下午 1:02

簡單的 DateAdd

公式 描述 結果
文本 (DateAdd(Now(),3),
"dd-mm-yyyy hh:mm" )
將三天 (預設單位) 新增至目前的日期與時間。 "18-07-2013 13:02"
文本 (DateAdd(Now(),4,TimeUnit.Hours),
"dd-mm-yyyy hh:mm" )
將四個小時新增至目前的日期與時間。 "15-07-2013 17:02"
Text (DateAdd(Today(),1,TimeUnit.Months),
"dd-mm-yyyy hh:mm" )
將一個月新增至目前的日期,今天 的時間不會傳回時間元件。 "15-08-2013 00:00"
文本 (DateAdd(Now(),-30,TimeUnit.Minutes),
"dd-mm-yyyy hh:mm" )
從目前的日期與時間減去 30 分鐘。 "15-07-2013 12:32"

簡單的 DateDiff

公式 描述 結果
DateDiff (Now(),DateValue (“2014/1/1”)) TimeUnit.Days 為預設單位傳回兩個單位之間的差異 170
DateDiff (Now(),DateValue (“1/1/2014”),TimeUnit.Months) TimeUnit.Months 為單位傳回兩個值之間的差異 6
DateDiff (現在(),今天(),TimeUnit.Minutes) 傳回目前的日期/時間與目前日期 (不含時間) 之間的差異,以分鐘為單位。 因為 現在 晚於 今天,所以結果會是負數。 -782

日期與分數結果的差異

函數 DateDiff 只會傳回要減去的單位整數,而有效位數則會在指定的單位中提供。 若要以較高的有效位數計算差異,請使用較小的單位,並適當地轉換結果,如下列範例所示。

公式 描述 結果
DateDiff (TimeValue(“09:45:00”),TimeValue (“10:15:36”),TimeUnit.Hours) 將忽略分鐘/秒,差異是根據時間決定,最多以小時為單位。 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 預設為當前時間,因此您無需向其傳遞參數。

若要查看結果,請使用 Text 函式與格式 dd-mm-yyyy hh:mm ,這會傳回 15-07-2013 20:02

從 UTC 轉換

若要從 UTC 轉換,針對指定的時間減去 TimeZoneOffset (新增負數)。

例如,假設 UTC 日期與時間 2013 年 7 月 15 日,下午 8:02 是儲存在名為 StartTime 的變數。 若要調整使用者時區的時間,請使用:

  • DateAdd (StartTime,−TimeZoneOffset(StartTime),TimeUnit.Minutes)

請注意,TimeZoneOffset 前面的負號會減去時差,而不是新增它。

若要查看結果,請使用 Text 函式與格式 dd-mm-yyyy hh:mm ,如果您位於太平洋日光節約時間的時區,這會傳回 15-07-2013 13:02