Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
| Funcións | Aplícase a |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| Function | Aplícase a |
|---|---|
| DateAdd | |
| DateDiff | |
| TimeZoneOffset |
Engade ou atopa a diferenza de valores de data/hora e converte da hora local a UTC.
Descripción
A DateAdd función engade un número de unidades a un valor de data / hora. O resultado é un novo valor de data/hora. Tamén pode restar un número de unidades dun valor de data/hora especificando un valor negativo.
A DateDiff función devolve a diferenza entre dous valores de data e hora. O resultado é un número enteiro de unidades.
Para ambas as funcións, as unidades poden ser TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, Ti meUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ou TimeUnit.Years. De forma predeterminada, ambas funcións usan TimeUnit.Days como unidades.
A TimeZoneOffset función devolve o número de minutos entre a hora local do usuario e UTC (Coordinated Universal Time).
Pode usar DateAdd o TimeZoneOffset para converter entre a hora local do usuario e UTC (Coordinated Universal Time). Engadir TimeZoneOffset converterá unha hora local a UTC, e restándoa (engadindo o negativo) converterase de UTC a hora local.
Consulta tamén Tipos de datos de data, hora e hora e traballar con datas e horas para obter máis información.
Sintaxe
DateAdd( DateTime, Addition [, Units ] )
- DateTime - Obrigatorio. Valor de data/hora no que operar.
- Adición - Obrigatorio. Número, en Unidades, para engadir á DataTime.
- Unidades - Opcional. O tipo de Unidades a engadir: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, T imeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ou TimeUnit.Years. Se non se especifica, empréganse TimeUnit.Days .
DateDiff( StartDateTime, EndDateTime [, Units ] )
- StartDateTime - Obrigatorio. Valor de data e hora de inicio.
- EndDateTime - Obrigatorio. Valor de data e hora de finalización.
- Unidades - Opcional. O tipo de Unidades a resta: TimeUnit.Millisegundos, TimeUnit.Seconds, TimeUnit.Minutes, TimeUn it.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters, ou TimeUnit.Years. Se non se especifica, empréganse TimeUnit.Days .
TimeZoneOffset( [ DateTime ] )
- DateTime - Opcional. Valor da data/hora para o que se devolverá a compensación. Por defecto, úsase a data/hora actual.
Exemplos
En todos estes exemplos, supoña que a data e hora actual é o 15 de xullo de 2013, 1:02 PM.
Sinxelo DateAdd
| Fórmula | Descripción | Resultado |
|---|---|---|
|
Text( DateAdd( Now(), 3 , "dd-mm-yyyy hh:mm" ) |
Engade tres días (unidades predeterminadas) á data e hora actual. | "18-07-2013 13:02" |
|
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyy hh:mm" ) |
Engade catro horas á data e hora actual. | "15-07-2013 17:02" |
|
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyy hh:mm" ) |
Engade un mes á data actual, sen tempo debido a que Hoxe non devolve un compoñente de tempo. | "15-08-2013 00:00" |
|
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyy hh:mm" ) |
Resta 30 minutos da data e hora actual. | "15-07-2013 12:32" |
Sinxelo DateDiff
| Fórmula | Descripción | Resultado |
|---|---|---|
| DateDiff( Now (), DateValue ("1 / 1 / 2014") ) | Devolve a diferenza entre as dúas unidades nas unidades predeterminadas de TimeUnit.Days | 170 |
| DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Devolve a diferenza entre os dous valores en TimeUnit.Months | 6 |
| DateDiff( Now(), Today(), TimeUnit.Minutes ) | Devolve a diferenza entre a data/hora actual e a data actual só (sen tempo) en minutos. Debido a que Agora é posterior a Hoxe, o resultado será negativo. | -782 |
Diferenza de datas con resultados fraccionados
A función DateDiff só devolve un número enteiro das unidades que se restan, e a precisión dáse na unidade especificada. Para calcular a diferenza cunha maior precisión, use unha unidade máis pequena e converta o resultado adecuadamente, como nos exemplos de abaixo.
| Fórmula | Descripción | Resultado |
|---|---|---|
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Os minutos ou segundos ignóranse, a diferenza baséase no tempo ata a hora. | 1 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Os minutos úsanse na diferenza e o resultado divídese por 60 para ter a diferenza en horas. | 0.5 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Os minutos e segundos úsanse na diferenza; o resultado divídese por 3600 para ter a diferenza en horas. | 0.51 |
Conversión a UTC
Para converter a UTC (Tempo Universal Coordinado), engade o TimeZoneOffset para a hora dada.
Por exemplo, imaxine que a data e hora actual é 15 de xullo de 2013, 1:02 PM en horario de verán do Pacífico (PDT, UTC-7). Para determinar a hora actual en UTC, use:
- DateAdd( Agora (), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset Por defecto é a hora actual, polo que non é necesario pasarlle un argumento.
Para ver o resultado, use a función Texto co formato dd-mm-yyyy hh:mm, que devolverá 15-07-2013 20:02.
Conversión desde UTC
Para converter de UTC, resta o TimeZoneOffset (engadindo o negativo) para o tempo dado.
Por exemplo, imaxine a data e hora de UTC 15 de xullo de 2013, 8:02 PM almacénase nunha variable chamada StartTime. Para axustar a hora para a zona horaria do usuario, use:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Nótese o signo negativo antes TimeZoneOffset para restar o desprazamento en lugar de engadilo.
Para ver o resultado, use a función Texto co formato dd-mm-yyyy hh:mm, que permitirá obter 15-07-2013 13:02 se está no horario de verán do Pacífico.