Funktionerna DateAdd, DateDiff och TimeZoneOffset
Funktion | Gäller för |
---|---|
DateAdd | Formelkolumner Dataverse för arbetsyteappar Datorflöden CLI för modellbaserade appar Power Platform |
DateDiff (på engelska) | Formelkolumner Dataverse för arbetsyteappar Datorflöden CLI för modellbaserade appar Power Platform |
TimeZoneOffset | Arbetsyteappar Datorflöden Modellbaserade appar Power Platform CLI |
Lägger till eller hittar skillnaden i datum-/tidsvärden och konverterar mellan lokal tid och UTC.
Beskrivning
Funktionen DateAdd lägger till ett antal enheter i ett datum-/tidsvärde. Resultatet är ett nytt datum-/tidsvärde. Du kan också ta bort ett antal enheter från ett datum-/tidsvärde genom att ange ett negativt värde.
Funktionen DateDiff returnerar skillnaden mellan två datum-/tidsvärden. Resultatet är ett heltal enheter.
För båda funktionerna kan enheterna vara TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Som standard använder båda funktionerna TimeUnit.Days som enheter.
Funktionen TimeZoneOffset returnerar antalet minuter mellan användarens lokala tid och UTC (Coordinated Universal Time).
Du kan använda DateAdd med TimeZoneOffset för att konvertera mellan användarens lokala tid och UTC (Coordinated Universal Time). Om du lägger till TimeZoneOffset konverteras en lokal tid till UTC, och om du subtraherar det (lägger till det negativa) konverteras det från UTC till lokal tid.
Mer information finns även i Datatyperna Date, Time och DateTime och Arbeta med datum och tid.
Syntax
DateAdd( DateTime; Addition [, Enheter ] )
- DateTime – obligatoriskt. Det Date/Time-värde som ska användas.
- Tillägg - Obligatoriskt. Nummer att lägga till i DateTime i Units.
- Enheter - Valfritt. Typen av Enheter för att lägga till: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Om inget annat anges används TimeUnit.Days används.
DateDiff( StartDateTime,EndDateTime [, Enheter ] )
- StartDateTime – Obligatoriskt. Start för datum-/tidsvärden.
- EndDateTime – obligatoriskt. Slut för datum-/tidsvärden.
- Enheter - Valfritt. Typen av Enheter för att subtrahera: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters eller TimeUnit.Years. Om inget annat anges används TimeUnit.Days används.
TimeZoneOffset( [ DateTime ] )
- DateTime – valfritt. Datum-/tidsvärdet som förskjutningen ska returneras för. Som standard används aktuellt datum/tid.
Exempel
I alla dessa exempel förutsätter vi att det aktuella datumet och tiden är 15 juli 2013, 13:02.
Enkel DateAdd
Formel | Beskrivning | Resultat |
---|---|---|
text( DateAdd( Nu(), 3 ), "dd-mm-yyyy hh:mm" ) |
Lägger till tre dagar (standardenheter) till aktuellt datum och tid. | "18-07-2013 13:02" |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Lägger till fyra timmar till aktuellt datum och tid. | "15-07-2013 17:02" |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Lägger till en månad till aktuellt datum, utan tid eftersom Today inte returnerar en tidskomponent. | "15-08-2013 00:00" |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Subtraherar 30 minuter från aktuellt datum och tid. | "15-07-2013 12:32" |
Enkel DateDiff
Formel | Beskrivning | Resultat |
---|---|---|
DateDiff( Nu (), DateValue("2014-01-01") | Returnerar skillnaden mellan de två enheterna i standardenheter för TimeUnit.Days | 170 |
DateDiff( Nu(), DateValue("2014-01-01"), TimeUnit.Months ) | Returnerar skillnaden mellan de två värdena i TimeUnit.Months | 6 |
DateDiff( Nu(), Idag(), TimeUnit.Minutes ) | Returnerar skillnaden mellan aktuellt datum och tid och endast aktuellt datum (ingen tid) i minuter. Eftersom Now är senare än Today blir resultatet negativt. | -782 |
Skillnader mellan datum och delat resultat
Funktionen DateDiff returnerar endast ett helt nummer av de enheter som subtraheras och precisionen anges i den angivna enheten. Om du vill beräkna skillnaden med en högre precision använder du en mindre enhet och konverterar resultatet på lämpligt sätt, som i exemplen nedan.
Formel | Beskrivning | Resultat |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Minuterna/sekunderna ignoreras och skillnaden beror på tiden upp till timmen. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Minuterna används i skillnaden och resultatet divideras med 60 för att skillnaden ska vara i timmar. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Minuterna och sekunderna används i skillnaden och resultatet divideras med 3600 för att skillnaden ska vara i timmar. | 0.51 |
Konvertera till UTC
Om du vill konvertera till UTC (Coordinated Universal Time) lägger du till TimeZoneOffset för angiven tid.
Anta till exempel att aktuellt datum och tid är 15 juli 2013, 13:02 i Pacific, sommartid (PDT, UTC-7). Använd följande för att fastställa den aktuella tiden i UTC:
- DateAdd( Nu (), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset är som standard den aktuella tiden, så du behöver inte skicka ett argument till den.
Visa resultatet genom att använda funktionen Text med formatet dd-mm-yyyy hh:mm, som ger 15-07-2013 20:02.
Konvertera från UTC
Om du vill konvertera från UTC subtraherar du TimeZoneOffset (genom att lägga till det negativa) för den angivna tiden.
Anta till exempel att datum och tid för UTC är 15 juli 2013, 20:02 som är lagrat i variabeln StartTime. Om du vill justera tiden för användarens tidszon använder du:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Lägg märke till minustecknet för TimeZoneOffset för att subtrahera förskjutningen i stället för att lägga till den.
Visa resultatet genom att använda funktionen Text med formatet dd-mm-yyyy hh:mm, som ger 15-07-2013 13:02 om du befinner dig i Pacific, sommartid.