DateAdd、DateDiff 和 TimeZoneOffset 函式
函式 | 適用於: |
---|---|
日期添加 | 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Platform CLI |
日期差異 | 畫布應用 Dataverse 公式列 桌面流 模型驅動應用 Power Platform CLI |
TimeZoneOffset(時區偏移) | 畫布應用 桌面流 模型驅動應用 Power Platform CLI |
在日期/時間值新增或尋找差異,並且在當地時間與 UTC 之間轉換。
描述
DateAdd 函式會將單位數新增至日期/時間值。 結果是新的日期/時間值。 您也可以藉由指定負數值以從日期/時間值減去單位數。
DateDiff 函式會傳回兩個日期/時間值之間的差異。 結果是單位整數。
對於這兩個函式,單位可以是 TimeUnit.Milliseconds、TimeUnit.Seconds、TimeUnit.Minutes、TimeUnit.Hours、TimeUnit.Days、TimeUnit.Months、TimeUnit.Quarters 或 TimeUnit.Years。 這兩個函式預設會使用 TimeUnit.Days 做為單位。
TimeZoneOffset 函式會傳回使用者當地時間與 UTC (國際標準時間) 之間的分鐘數。
您可以搭配使用 DateAdd 與 TimeZoneOffset,在使用者的當地時間與 UTC (國際標準時間) 之間進行轉換。 新增 TimeZoneOffset 會將當地時間轉換為 UTC,而減去 (新增負數) 會從 UTC 轉換為當地時間。
另請參閱 Date、Time 和 DateTime 資料類型 及 處理日期和時間。
語法
日期添加( 日期時間, 添加 [, 單位 ])
- DateTime - 必需。 要運作的日期/時間值。
- 添加 - 必需。 要新曾至 DateTime 中的數目,以 Units 為單位。
- Units - 可選。 要加上的單位類型:TimeUnit.Milliseconds、TimeUnit.Seconds、TimeUnit.Minutes、TimeUnit.Hours、TimeUnit.Days、TimeUnit.Months、TimeUnit.Quarters 或 TimeUnit.Years。 如果未指定,則會使用 TimeUnit.Days。
DateDiff( 開始日期時間, 結束日期時間 [, 單位 ])
- StartDateTime - 必需。 開始日期/時間值。
- EndDateTime - 必需。 結束日期/時間值。
- Units - 可選。 要減去的單位類型:TimeUnit.Milliseconds、TimeUnit.Seconds、TimeUnit.Minutes、TimeUnit.Hours、TimeUnit.Days、TimeUnit.Months、TimeUnit.Quarters 或 TimeUnit.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。