Funzioni DateAdd, DateDiff e TimeZoneOffset
Funzione | Si applica a |
---|---|
DataAggiungi | App Canvas Dataverse colonne formula flussi Desktop App basate su modello Power Platform CLI |
DataDiff | App Canvas Dataverse colonne formula flussi Desktop App basate su modello Power Platform CLI |
Offset fuso orario | App Canvas Desktop flussi App basate su modello Power Platform CLI |
Aggiunge o trova la differenza nei valori di data/ora ed esegue la conversione tra l'ora locale e l'ora UTC.
Descrizione
La funzione DateAdd aggiunge un numero di unità a un valore di data/ora. Il risultato è un nuovo valore di data/ora. È possibile anche sottrarre un numero di unità da un valore di data/ora specificando un valore negativo.
La funzione DateDiff restituisce la differenza tra due valori di data/ora. Il risultato è un numero intero di unità.
Per entrambe le funzioni, le unità possono essere TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters o TimeUnit.Years. Per impostazione predefinita, l'unità usata da entrambe le funzioni è TimeUnit.Days.
La funzione TimeZoneOffset restituisce il numero di minuti tra l'ora locale dell'utente e l'ora UTC (Coordinated Universal Time).
È possibile usare DateAdd con TimeZoneOffset per la conversione tra l'ora locale dell'utente e l'ora UTC (Coordinated Universal Time). L'aggiunta di TimeZoneOffset convertirà un'ora locale nell'ora UTC e la sottrazione (aggiunta del valore negativo) eseguirà la conversione dall'ora UTC all'ora locale.
Vedere anche Tipi di dati Date, Time e DateTime e Utilizzo di date e ore per altre informazioni.
Sintassi
DateAdd( DataOra, Aggiunta [, Unità ] )
- DateTime - Obbligatorio. Valore data/ora su cui eseguire le operazioni.
- Aggiunta - Obbligatorio. Numero da aggiungere a DateTime, in Units.
- Unità - Facoltativo. Tipo di unità da aggiungere: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters o TimeUnit.Years. Se questo argomento non è specificato, viene usato TimeUnit.Days.
DateDiff( StartDateTime, EndDateTime [, Unità ] )
- StartDateTime -obbligatorio. Valore di data/ora iniziale.
- EndDateTime - Obbligatorio. Valore di data/ora finale.
- Unità - Facoltativo. Tipo di unità da sottrarre: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters o TimeUnit.Years. Se questo argomento non è specificato, viene usato TimeUnit.Days.
TimeZoneOffset( [ DataOra ] )
- DateTime - Facoltativo. Valore di data/ora per il quale restituire l'offset. Per impostazione predefinita vengono usati la data e l'ora correnti.
Esempi
In tutti questi esempi si supponga che la data e l'ora correnti siano 15 luglio 2013, 1:02 PM.
DateAdd semplice
Formula | Descrizione | Risultato |
---|---|---|
Testo(DataAggiungi(Ora(), 3), "dd-mm-yyyy hh:mm" ) |
Aggiunge tre giorni (unità predefinite) alla data e all'ora correnti. | "18-07-2013 13:02" |
Testo( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Aggiungere quattro ore alla data e all'ora correnti. | "15-07-2013 17:02" |
Testo( DateAdd( Oggi(), 1, TimeUnit.Mesi ), "dd-mm-yyyy hh:mm" ) |
Aggiunge un mese alla data corrente, senza l'ora poiché Today non restituisce un componente ora. | "15-08-2013 00:00" |
Testo( DateAdd( Now(), ‑30, TimeUnit.Minuti ), "dd-mm-yyyy hh:mm" ) |
Sottrae 30 minuti dalla data e dall'ora correnti. | "15-07-2013 12:32" |
DateDiff semplice
Formula | Descrizione | Risultato |
---|---|---|
DateDiff( Adesso(), DateValue("1/1/2014") ) | Restituisce la differenza tra le due unità nelle unità di misura predefinite TimeUnit.Days | 170 |
DateDiff( Ora(), DateValue("1/1/2014"), TimeUnit.Mesi ) | Restituisce la differenza tra i due valori in TimeUnit.Months | 6 |
DateDiff( Ora(), Oggi(), TimeUnit.Minuti ) | Restituisce la differenza tra la data e l'ora correnti e solo la data corrente (non l'ora), in minuti. Poiché il valore Now è successivo a Today il risultato sarà negativo. | -782 |
Differenza di date con risultati frazionari
La funzione DateDiff restituisce solo un numero intero delle unità sottratte e la precisione è data nell'unità specificata. Per calcolare la differenza con una precisione maggiore, utilizza un'unità più piccola e converti il risultato in modo appropriato, come negli esempi seguenti.
Formula | Descrizione | Risultato |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Ore ) | I minuti/secondi vengono ignorati, la differenza è basata sul tempo arrotondato all'ora. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minuti )/60 | I minuti vengono utilizzati nella differenza e il risultato viene diviso per 60 per avere la differenza in ore. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Secondi )/3600 | I minuti e i secondi vengono utilizzati nella differenza e il risultato viene diviso per 3600 per avere la differenza in ore. | 0.51 |
Conversione in formato UTC
Per convertire in formato UTC (Coordinated Universal Time), aggiungere TimeZoneOffset per il tempo specificato.
Si supponga, ad esempio, che la data e l'ora correnti siano 15 luglio 2013, 1:02 PM nell'ora legale Pacifico (PDT, UTC-7). Per determinare l'ora corrente in formato UTC, usare:
- DateAdd( Ora(), TimeZoneOffset(), TimeUnit.Minuti )
TimeZoneOffset per impostazione predefinita è l'ora corrente, quindi non è necessario passargli un argomento.
Per visualizzare il risultato, usare la funzione Text con il formato dd-mm-yyyy hh:mm, che restituirà 15-07-2013 20:02.
Conversione dal formato UTC
Per eseguire la conversione dal formato UTC, sottrarre TimeZoneOffset, aggiungendo il corrispondente negativo, per il tempo specificato.
Si supponga, ad esempio, che la data e l'ora UTC 15 luglio 2013, 8:02 PM vengano archiviate in una variabile denominata StartTime. Per modificare l'ora per il fuso orario dell'utente, usare:
- DateAdd( Ora di inizio, −TimeZoneOffset( Ora di inizio ), TimeUnit.Minuti )
Si noti il segno negativo prima di TimeZoneOffset per sottrarre l'offset anziché aggiungerlo.
Per visualizzare il risultato, usare la funzione Text con il formato dd-mm-yyyy hh:mm, che restituirà 15-07-2013 13:02 se ci si trova in un fuso orario del Pacifico.