Compartilhar via


DateAdd, DateDiffe TimeZoneOffset funções

Functions Aplica-se a
DateAdd
DateDiff
Aplicativos de tela O Copilot Studio Desktop flui colunas de fórmula do Dataverse para aplicativos controlados por modelos do Power Platform CLI Dataverse functions Power Pages
TimeZoneOffset Aplicativos de tela Copilot Studio Desktop flui aplicativos baseados em modelo CLI CLI Dataverse funções Power Pages
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.