Kopīgot, izmantojot


Funkcijas DateAdd, DateDiff un TimeZoneOffset

Function Attiecas uz
DateAdd Audekla programmu Dataverse formulu kolonnas Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI
DateDiff Audekla programmu Dataverse formulu kolonnas Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI
TimeZoneOffset Pamatnes programmas Darbvirsmas plūsmas Modeļa vadītas programmas Power Platform CLI

Pievieno vai atrod atšķirību datuma/laika vērtībās un konvertē starp lokālo laiku un UTC.

Apraksts

Funkcija DateAdd pievieno skaitļu virkni datuma/laika vērtībai. Rezultāts ir jauna datuma/laika vērtība. Varat arī atņemt vienību skaitu no datuma/laika vērtības, norādot negatīvu vērtību.

Funkcija DateDiff atgriež starpību starp divām datuma/laika vērtībām. Rezultāts ir vesels vienību skaits.

Abām funkcijām vienības var būt TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters vai TimeUnit.Years. Pēc noklusējuma abas funkcijas izmanto TimeUnit.Days kā vienības.

Funkcija TimeZoneOffset atgriež minūšu skaitu starp lietotāja lokālo laiku un UTC (universālo koordinēto laiku).

Varat izmantot DateAdd kopā ar TimeZoneOffset, lai konvertētu starp lietotāja lokālo laiku un UTC (universālo koordinēto laiku). Pievienojot TimeZoneOffset, vietējais laiks tiks konvertēts UTC izteiksmē, un to atņemot (pieskaitot negatīvu) to konvertēs no UTC lokālajā laikā.

Papildinformāciju skatiet arī datu tipos Date, Time un DateTime un darbā ar datumiem un laikiem .

Sintakse

DateAdd(DateTime,Add [, Units ])

  • DateTime - nepieciešams. Datuma/laika vērtība, kurā jādarbojas.
  • Papildinājums - Nepieciešams. Skaitlis, izteikts Vienībās, kuru pievienot DateTime.
  • Vienības - pēc izvēles. Pievienojamo vienību tips:TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters vaiTimeUnit.Years. Ja tas nav norādīts, tiek izmantotas TimeUnit.Days .

DateDiff( StartDateTime,EndDateTime [ , Units ] )

  • StartDateTime - nepieciešams. Sākuma datuma/laika vērtība.
  • EndDateTime - nepieciešams. Beigu datuma/laika vērtība.
  • Vienības - pēc izvēles. Atņemamo vienību tips:TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters vaiTimeUnit.Years. Ja tas nav norādīts, tiek izmantotas TimeUnit.Days .

TimeZoneOffset( [ DateTime ] )

  • DateTime - pēc izvēles. Datuma/laika vērtība, kurai jāatgriež nobīde. Pēc noklusējuma tiek izmantots pašreizējais datums/laiks.

Piemēri

Visos šajos piemēros pieņemiet, ka pašreizējais laiks un datums ir July 15, 2013, 1:02 PM.

Vienkārša DateAdd

Formula Apraksts Rezultāts
Text( DateAdd( Now(), 3 ),
"dd-mm-yyyy hh:mm" )
Pašreizējam datumam un laikam pievieno trīs dienas (noklusējuma vienības). "18-07-2013 13:02"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"dd-mm-yyyy hh:mm" )
Pievienojiet pašreizējam datumam un laikam četras stundas. "15-07-2013 17:02"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"dd-mm-yyyy hh:mm" )
Pievieno vienu mēnesi pašreizējam datumam bez laika, jo Today neatgriež laika komponentu. "15-08-2013 00:00"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Noņem 30 minūtes no pašreizējā datuma un laika. "15-07-2013 12:32"

Vienkārša DateDiff

Formula Apraksts Rezultāts
DateDiff( Now(), DateValue("1/1/2014") ) Atgriež divu vienību starpību noklusējuma vienībās TimeUnit.Days. 170
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) Atgriež abu vērtību starpību timeunit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) Atgriež starpību starp pašreizējo datumu/laiku un pašreizējo datumu vienīgi (bez laika) minūtēs. Tā kā Now ir vēlāks nekā Today, rezultāts būs negatīvs. -782

Datumu atšķirība ar daļskaitļa rezultātiem

Funkcija DateDiff atgriež tikai veselu atņemto vienību skaitu, un precizitāte ir norādīt sniegtajā vienībā. Lai aprēķinātu starpību ar augstāku precizitāti, izmantojiet mazāku vienību un pārvērtiet rezultātu atbilstoši, piemēram, tālāk redzamajiem piemēriem.

Formula Apraksts Rezultāts
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) Minūtes/sekundes tiek ignorētas, atšķirību pamatojot ar laiku līdz stundai. 1
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 Minūtes tiek izmantotas starpībā, un rezultāts tiek dalīts ar 60, lai būtu starpība stundās. 0.5
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 Minūtes un sekundes tiek izmantotas starpībā; un rezultāts tiek dalīts ar 3600, lai būtu starpība stundās. 0.51

Konvertēšana par UTC

Lai konvertētu UTC (universālajā koordinētajā laikā), dotajam laikam pievienojiet TimeZoneOffset.

Piemēram, iedomājieties, ka pašreizējais datums un laiks ir July 15, 2013 1:02 PM Klusā okeāna vasaras laikā (PDT, UTC-7). Lai noteiktu pašreizējo laiku UTC sistēmā, izmantojiet:

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

TimeZoneOffset noklusē pašreizējo laiku, tāpēc jums tas nav jānodod kā arguments.

Lai skatītu rezultātu, izmantojiet Text funkciju ar formātu dd-mm-yyyy hh:mm, kas atgriezīs 15-07-2013 20:02.

Konvertēšana no UTC

Lai konvertētu no UTC, atņemiet TimeZoneOffset (pievienojot negatīvu vērtību) no dotā laika.

Piemēram, iedomājieties, ka UTC datums un laiks July 15, 2013, 8:02 PM tiek glabāts mainīgajā ar nosaukumu StartTime. Lai pielāgotu laiku lietotāja laika joslai, izmantojiet:

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

Atzīmējiet negatīvo zīmi pirms TimeZoneOffset, lai atņemtu nobīdi, nevis to pievienotu.

Lai skatītu rezultātu, izmantojiet funkciju Text ar formātu dd-mm-yyyy hh:mm, kas radīs rezultātu 15-07-2013 13:02, ja atrodaties Klusā okeāna vasaras laika joslā.