Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
Function | S'aplica a |
---|---|
Afegeix data |
|
DateDiff |
|
Desplaçament de la zona horària |
|
S'afegeix o es troba la diferència en els valors de data/hora i es converteix entre l'hora local i l'UTC.
Descripció
La funció DateAdd afegeix un nombre d'unitats a un valor de data/hora. El resultat és un nou valor de data/hora. També podeu restar un nombre d'unitats a un valor de data/hora especificant un valor negatiu.
La funció DateDiff retorna la diferència entre dos valors de data/hora. El resultat és un nombre enter d'unitats.
Per a ambdues funcions, les unitats poden ser TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters o TimeUnit.Years. Per defecte, ambdues funcions utilitzen TimeUnit.Days com a unitats.
La funció TimeZoneOffset retorna el nombre de minuts entre l'hora local de l'usuari i l'UTC (temps universal coordinat).
Podeu utilitzar DateAdd amb TimeZoneOffset per convertir entre l'hora local de l'usuari i l'UTC (temps universal coordinat). Si afegiu TimeZoneOffset , convertirà una hora local en UTC i si la resteu (afegint el negatiu) convertirà una hora en UTC a l'hora local.
Vegeu també Tipus de dades Data, Hora i DataHora i Treballar amb dates i hores per obtenir més informació.
Sintaxi
DateAdd( DateTime,Addició [, Unitats ] )
- DateTime - Obligatori. Valor de data/hora per operar.
- Addició : obligatòria. Número, en Unitats, per afegir a DateTime.
- Unitats - Opcional. El tipus d'unitats que s'han d'afegir : TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters oTimeUnit.Years. Si no s'especifica, s'utilitzen TimeUnit.Days .
DateDiff(StartDateTime,EndDateTime [, Unitats ] )
- StartDateTime : obligatori. Valor de data i hora d'inici.
- EndDateTime : obligatori. Valor de data i hora de finalització.
- Unitats - Opcional. El tipus d'unitats que s'han de restar: TimeUnit.Milliseconds,TimeUnit.Seconds,TimeUnit.Minutes,TimeUnit.Hours,TimeUnit.Days,TimeUnit.Months,TimeUnit.Quarters oTimeUnit.Years. Si no s'especifica, s'utilitzen TimeUnit.Days .
TimeZoneOffset( [ DateTime ] )
- DateTime : opcional. Valor de data/hora per al qual es retorna el desplaçament. Per defecte, s'utilitza la data i l'hora actuals.
Exemples
En tots aquests casos, suposem que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda.
DateAdd senzill
Fórmula | Descripció | Resultat |
---|---|---|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyy hh:mm" ) |
Afegeix tres dies (unitats per defecte) a la data i l'hora actuals. | "18-07-2013 13:02" |
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Afegiu quatre hores a la data i l'hora actuals. | "15-07-2013 17:02" |
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Afegeix un mes a la data actual, sense hora, ja que Today no retorna un component d'hora. | "15-08-2013 00:00" |
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Resta 30 minuts a la data i l'hora actuals. | "15-07-2013 12:32" |
DateDiff senzill
Fórmula | Descripció | Resultat |
---|---|---|
DateDiff( Now(), DateValue("1/1/2014") ) | Retorna la diferència entre les dues unitats de les unitats per defecte de TimeUnit.Days | 170 |
DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Retorna la diferència entre els dos valors de TimeUnit.Months | 6 |
DateDiff( Now(), Today(), TimeUnit.Minutes ) | Retorna la diferència entre la data i l'hora actuals i la data actual només (sense hora) en minuts. Atès que Now és posterior a Today, el resultat serà negatiu. | -782 |
Diferència de dates amb resultats fraccionats
La funció DateDiff només retorna un nombre enter de les unitats que s'estan restant i la precisió s'especifica a la unitat especificada. Per calcular la diferència amb una precisió més alta, utilitzeu una unitat més petita i convertiu el resultat adient, com ara als exemples següents.
Fórmula | Descripció | Resultat |
---|---|---|
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Els minuts/segons s'ignoren, la diferència es basa en el temps fins a l'hora. | 1 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Els minuts s'utilitzen en la diferència i el resultat es divideix per 60 per tenir la diferència en hores. | 0.5 |
DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Els minuts i segons s'utilitzen en la diferència; el resultat es divideix per 3600 per tenir la diferència en hores. | 0.51 |
Convertir a UTC
Per convertir a l'UTC (hora universal coordinada), afegiu el TimeZoneOffset per a l'hora donada.
Per exemple, imagineu que la data i l'hora actual és el 15 de juliol de 2013, 1:02 de la tarda a l'hora d'estiu del Pacífic (PDT, UTC-7). Per determinar l'hora actual en UTC, utilitzeu:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset per defecte és l'hora actual, de manera que no cal que li passis cap argument.
Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que retornarà 15-07-2013 20:02.
Convertir des de l'UTC
Per convertir des d'UTC, resteu el TimeZoneOffset (afegint-hi el negatiu) per a l'hora donada.
Per exemple, imagineu que la data i l'hora d'UTC del 15 de juliol del 2013 ales 8:02 del vespre s'emmagatzemen en una variable anomenada StartTime. Per ajustar l'hora per al fus horari de l'usuari, utilitzeu:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Observeu el signe negatiu abans de TimeZoneOffset per restar el desplaçament en comptes d'afegir-lo.
Per veure el resultat, utilitzeu la funció Text amb el format dd-mm-yyyy hh:mm, que resultarà en 15-07-2013 13:02 si sou a l'hora d'estiu del Pacífic.