Funkcije DateAdd, DateDiff i TimeZoneOffset
Odnosi se na: Stupci formule aplikacija Dataverse od gotovih gradivnih elemenata Tokovi radne površine CLI aplikacije stvorene prema Power Platform modelu
Dodaje ili pronalazi razliku u vrijednostima datum/vrijeme i prebacuje vrijeme između lokalnog vremena i UTC-a.
Opis
Funkcija DateAdd dodaje broj jedinica vrijednosti datum/vrijeme. Rezultat je nova vrijednost datum/vrijeme. Također, od vrijednosti datum/vrijeme možete oduzeti jedan broj jedinica specificiranjem negativne vrijednosti.
Funkcija DateDiff vraća razliku između dvije vrijednosti datum/vrijeme. Rezultat je cijeli broj jedinica.
Za obje funkcije jedinice mogu biti TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters ili TimeUnit.Years. Prema zadanim postavkama obje funkcije koriste TimeUnit.Days kao jedinice.
Funkcija TimeZoneOffset vraća broj minuta između korisnikovog lokalnog vremena i UTC-a (Univerzalno koordinirano vrijeme).
Možete koristiti DateAdd zajedno s TimeZoneOffset za prebacivanje između korisnikovog lokalnog vremena i UTC-a (univerzalno koordinirano vrijeme). Dodavanje TimeZoneOffset pretvorit će lokalno vrijeme u UTC, a oduzimanjem (dodavanjem negativnog) pretvorit će se iz UTC-a u lokalno vrijeme.
Dodatne informacije potražite i u odjeljku Vrste podataka datum, vrijeme i datum i vrijeme te rad s datumima i vremenima .
Sintaksa
DateAdd( datum/vrijeme, veličina [, jedinice ] )
- DateTime – obavezno. Vrijednost datum/vrijeme koja se koristi.
- Addition – obavezno. Broj izražen u jedinicama koji se dodaje na datum/vrijeme.
- Units – neobavezno. Vrsta jedinica koje treba dodati: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters iliTimeUnit.Years. Ako nije navedeno, koriste se TimeUnit.Days .
DateDiff( početni datum/vrijeme, završni datum/vrijeme [, jedinice ] )
- StartDateTime – obavezno. Početna vrijednost datuma i vremena.
- EndDateTime – obavezno. Završna vrijednost datuma i vremena.
- Units – neobavezno. Vrsta jedinica za oduzimanje: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters iliTimeUnit.Years. Ako nije navedeno, koriste se TimeUnit.Days .
TimeZoneOffset( [ datum/vrijeme ] )
- DateTime – neobavezno. Vrijednost datum/vrijeme za koje se vraća odstupanje. Prema zadanim postavkama koristi se trenutačni datum/vrijeme.
Primjeri
U svim ovim primjerima pretpostavite da su trenutačni datum i vrijeme July 15, 2013, 1:02 PM.
Jednostavna upotreba funkcije DateAdd
Formula | Opis | Rezultat |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Dodaje tri dana (zadane jedinice) trenutačnom datumu i vremenu. | „18-07-2013 13:02” |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Dodajte četiri sata trenutačnom datumu i vremenu. | „15-07-2013 17:02” |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Dodaje se jedan mjesec trenutačnom datumu, bez vremena jer Today ne vraća vremensku komponentu. | „15-08-2013 00:00” |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Oduzima 30 minuta od trenutačnog datuma i vremena. | „15-07-2013 12:32” |
Jednostavna upotreba funkcije DateDiff
Formula | Opis | Rezultat |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014") ) | Vraća razliku između dvije jedinice u zadanim jedinicama vremenske jedinice.Days | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Vraća razliku između dvije vrijednosti u TimeUnit.Months | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Vraća razliku između trenutačnog datuma/vremena i trenutačnog datuma (bez vremena) u minutama. Budući da je Now kasnije od Today, rezultat će biti negativan. | -782 |
Razlika datuma s razlomačkim rezultatima
Funkcija DateDiff vraća samo cijeli broj jedinica koje se oduzimaju, a preciznost je dana u navedenoj jedinici. Da biste izračunali razliku s većom preciznošću, koristite manju jedinicu i pretvorite rezultat na odgovarajući način, kao u primjerima u nastavku.
Formula | Opis | Rezultat |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minute/sekunde se zanemaruju, razlika se temelji na vremenu do sata. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Minute se koriste u razlici, a rezultat se dijeli sa 60 da bi se dobila razlika u satima. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Minute i sekunde se koriste u razlici; rezultat se dijeli sa 3600 da bi se dobila razlika u satima. | 0.51 |
Pretvaranje u UTC
Da biste vrijeme pretvorili u UTC (koordinirano univerzalno vrijeme), dodajte TimeZoneOffset za dano vrijeme.
Na primjer, uzmite da su trenutačni datum i vrijeme July 15, 2013, 1:02 PM prema pacifičkom dnevnom vremenu (PDT, UTC-7). Da biste odredili trenutačno vrijeme u UTC, upotrijebite:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
Zadana vrijednost za TimeZoneOffset je trenutačno vrijeme, tako da ne morate prenijeti argument.
Da biste vidjeli rezultat, upotrijebite funkciju Text u obliku dd-mm-yyyy hh:mm, koja će vratiti 15-07-2013 20:02.
Pretvaranje iz UTC
Da biste pretvorili vrijeme iz UTC-a, oduzmite TimeZoneOffset (dodavanjem negativne vrijednosti) za dano vrijeme.
Na primjer, uzmite da je UTC datum i vrijeme July 15, 2013, 8:02 PM spremljeno u varijabli nazvanoj StartTime. Da biste to vrijeme prilagodili vremenskoj zoni korisnika, upotrijebite:
- DateAdd( Vrijeme pokretanja, −TimeZoneOffset( Vrijeme početka ), TimeUnit.Minutes )
Upotrijebite negativni predznak za TimeZoneOffset kako biste odstupanje oduzeli umjesto da ga dodate.
Da biste vidjeli rezultat, upotrijebite funkciju Text u obliku dd-mm-yyyy hh:mm, koja će dati 15-07-2013 13:02 ako ste u pacifičkom dnevnom vremenu.