Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Functions | Aplica-se a |
|---|---|
| DateAdd DateDiff |
|
| TimeZoneOffset |
|
| Função | Aplica-se a |
|---|---|
| DateAdd | |
| DateDiff | |
| TimeZoneOffset |
Adiciona ou encontra a diferença em valores de data/hora e converte entre hora local e UTC.
Descrição
A DateAdd função adiciona várias unidades a um valor de data/hora. O resultado é um novo valor de data/hora. Também é possível subtrair várias unidades de um valor de data/hora especificando um valor negativo.
A DateDiff função retorna a diferença entre dois valores de data/hora. O resultado é um número inteiro de unidades.
Para as duas funções, as unidades podem ser TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Por padrão, ambas as funções usam TimeUnit.Days como unidades.
A TimeZoneOffset função retorna o número de minutos entre a hora local do usuário e UTC (Tempo Universal Coordenado).
Você pode usar DateAdd com a conversão TimeZoneOffset entre a hora local do usuário e UTC (Tempo Universal Coordenado). Adicionar TimeZoneOffset converterá uma hora local em UTC e subtraí-la (adicionando o negativo) converterá de UTC em hora local.
Consulte também tipos de dados Date, Time e DateTime e como trabalhar com datas e horas para obter mais informações.
Sintaxe
DateAdd( DateTime, Addition [, Units ] )
- DateTime - Obrigatório. Valor de data/hora no qual operar.
- Adição - Obrigatório. O número, em Unidades, a ser adicionado a DateTime.
- Unidades - Opcional. Os tipos de Unidades para adicionar: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Se não for especificado, TimeUnit.Days será usado.
DateDiff( StartDateTime, EndDateTime [, Unidades ] )
- StartDateTime - Obrigatório. Valor de data/hora de início.
- EndDateTime - Obrigatório. Valor de data/hora de término.
- Unidades - Opcional. Os tipos de Unidades para subtrair: TimeUnit.Milliseconds, TimeUnit.Seconds, TimeUnit.Minutes, TimeUnit.Hours, TimeUnit.Days, TimeUnit.Months, TimeUnit.Quarters ou TimeUnit.Years. Se não for especificado, TimeUnit.Days será usado.
TimeZoneOffset( [ DateTime ] )
- DateTime - Opcional. O valor de data/hora para o qual a diferença será retornada. Por padrão, a data/hora atual é usada.
Exemplos
Em todos esses exemplos, suponha que a data e hora atual seja 15 de julho de 2013, 13:02.
Simples DateAdd
| Fórmula | Descrição | Resultado |
|---|---|---|
|
Text( DateAdd( Now(), 3 ), "dd-mm-yyyyy hh:mm" ) |
Adiciona três dias (unidades padrão) à data e hora atuais. | "18-07-2013 13:02" |
|
Text( DateAdd( Now(), 4, TimeUnit.Hours ), "dd-mm-yyyyy hh:mm" ) |
Adiciona quatro horas à data e hora atuais. | "15-07-2013 17:02" |
|
Text( DateAdd( Today(), 1, TimeUnit.Months ), "dd-mm-yyyyy hh:mm" ) |
Adiciona um mês à data atual, sem hora, pois Today não retorna um componente de tempo. | "15-08-2013 00:00" |
|
Text( DateAdd( Now(), -30, TimeUnit.Minutes ), "dd-mm-yyyyy hh:mm" ) |
Subtrai 30 minutos da data e hora atuais. | "15-07-2013 12:32" |
Simples DateDiff
| Fórmula | Descrição | Resultado |
|---|---|---|
| DateDiff( Now(), DateValue("1/1/2014") ) | Retorna a diferença entre as duas unidades nas unidades padrão de TimeUnit.Days | 170 |
| DateDiff( Now(), DateValue("1/1/2014"), TimeUnit.Months ) | Retorna a diferença entre os dois valores em TimeUnit.Months | 6 |
| DateDiff( Now(), Today(), TimeUnit.Minutes ) | Retorna a diferença entre a data/hora atual e apenas a data atual (sem hora) em minutos. Como Now é posterior a Today, o resultado será negativo. | -782 |
Diferença de datas com resultados fracionários
A função DateDiff retorna apenas um número inteiro das unidades que estão sendo subtraídas e a precisão é fornecida na unidade especificada. Para calcular a diferença com uma precisão maior, use uma unidade menor e converta o resultado de forma adequada, como nos exemplos abaixo.
| Fórmula | Descrição | Resultado |
|---|---|---|
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) | Os minutos/segundos são ignorados, e a diferença é baseada no tempo até a hora. | 1 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/60 | Os minutos são usados na diferença, e o resultado é dividido por 60 para ter a diferença em horas. | 0.5 |
| DateDiff( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/3600 | Os minutos e segundos são usados na diferença, e o resultado é dividido por 3600 para ter a diferença em horas. | 0.51 |
Conversão para o UTC
Para converter em UTC (Tempo Universal Coordenado), adicione o TimeZoneOffset tempo determinado.
Por exemplo, imagine que a data e hora atual é 15 de julho de 2013, 13:02 no Horário de Verão do Pacífico (PDT, UTC-7). Para determinar a hora atual em UTC, use:
- DateAdd( Now(), TimeZoneOffset(), TimeUnit.Minutes )
TimeZoneOffset usa o padrão para a hora atual, portanto, você não precisa passá-lo um argumento.
Para ver o resultado, use a função Text com o formato dd-mm-yyyy hh:mm, que retornará 15-07-2013 20:02.
Conversão do UTC
Para converter de UTC, subtraia o TimeZoneOffset (adicionando o negativo) para o tempo determinado.
Por exemplo, imagine que a data e hora do UTC 15 de julho de 2013, 20:02 está armazenada em uma variável chamada StartTime. Para ajustar a hora para o fuso horário do usuário, utilize:
- DateAdd( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )
Observe o sinal negativo antes TimeZoneOffset para subtrair o deslocamento em vez de adicioná-lo.
Para ver o resultado, use a função Text com o formato dd-mm-yyyy hh:mm, o que resultará em 15-07-2013 13:02 se você estiver no Horário de Verão do Pacífico.