Applies ToAccess para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retorna uma Variante (Longo) que especifica o número de intervalos de tempo entre as duas datas especificadas.

Sintaxe

DateDiff ( interval, date1, date2 [, firstdayofweek] [, firstweekofyear] )

A sintaxe da função DateDiff tem esses argumentos:

Argumento

Descrição

intervalo

Obrigatório. Expressão de cadeia de caracteres que é o intervalo de tempo que você usa para calcular a diferença entre date1 e date2.

date1, date2

Obrigatório. Variant (Data). Duas datas que você deseja usar no cálculo.

primeirodiadasemana

Opcional. Um constante que especifica o primeiro dia da semana. Se não especificado, será usado o domingo.

primeirasemanadoano

Opcional. Uma constante que especifica a primeira semana do ano. Se não especificado, será usada a semana em que ocorre 1 de janeiro.

Configurações

O intervaloargumento tem estas configurações:

Configuração

Descrição

aaaa

Ano

q

Trimestre

m

Mês

nte misturada,

Dia do ano

d

Dia

w

Dia da semana

ss

Semana

h

Hora

n

Minuto

a a

Segundo

O argumento firstdayofweek tem estas configurações:

Constante

Valor

Descrição

vbUseSystem

0

Use a configuração da API NLS.

vbSunday

1

Domingo (padrão)

vbMonday

2

Segunda-feira

vbTuesday

3

Terça-feira

vbWednesday

4

Quarta-feira

vbThursday

5

Quinta-feira

vbFriday

6

Sexta-feira

vbSaturday

7

Sábado

Constante

Valor

Descrição

vbUseSystem

0

Use a configuração da API NLS.

vbFirstJan1

1

Comece com a semana em que ocorre 1º de janeiro (padrão).

vbFirstFourDays

2

Comece com a primeira semana que tem pelo menos quatro dias no ano novo.

vbFirstFullWeek

3

Comece com a primeira semana completa do ano.

Comentários

Você pode usar a função DateDiff para determinar quantos intervalos de tempo especificados existem entre duas datas. Por exemplo, você pode usar DateDiff para calcular o número de dias entre duas datas ou o número de semanas entre hoje e o final do ano.

Para calcular o número de dias entre date1 e date2, você pode usar dia do ano ("y") ou Dia ("d"). Quando o intervalo é Dia da Semana ("w"), DateDiff retorna o número de semanas entre as duas datas. Se date1 cair em uma segunda-feira, DateDiff conta o número de segundas-feiras até a data2. Ele conta data2 , mas não date1. No entanto, se o intervalo for Semana ("ww"), a função DateDiff retornará o número de semanas de calendário entre as duas datas. Conta o número de domingos entre data1 e date2. DateDiff conta data2 se ele cair em um domingo; mas não conta data1, mesmo que caia em um domingo.

Se date1 se referir a um ponto de hora posterior do que date2, a função DateDiff retornará um número negativo.

O argumento firstdayofweek afeta cálculos que usam os símbolos de intervalo "w" e "ww".

Se date1 ou date2 for um literal de data, o ano especificado se tornará uma parte permanente dessa data. No entanto, se date1 ou date2 estiver entre aspas duplas (" "), e você omitir o ano, o ano atual será inserido em seu código sempre que a expressão date1 ou date2 for avaliada. Isso torna possível gravar um código que pode ser usado em anos diferentes.

Ao comparar 31 de dezembro a 1º de janeiro do ano imediatamente bem-sucedido, DateDiff for Year ("yyyy") retorna 1, embora apenas um dia tenha decorrido.

Observação:  Para date1 e date2, se a configuração da propriedade Calendar for gregoriana, a data fornecida deverá ser gregoriana. Se o calendário for Hijri, a data fornecida deverá ser Hijri.

Exemplos de consulta DateDiff

Expressão

Resultados

SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales;

Retorna a diferença entre Date2 e Date1 (considere Date1 como mais antigo e Date2 como mais novo) como número de 'Anos'. Resultado: diferença entre os valores no campo "DateofSale" e a data "01/01/2010" como número de "Anos".

SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateofSale" como número de "Trimestres" (com base no ano de geração) e é exibida na coluna "DaysSinceSale". retorna a diferença entre a data do sistema e "DateofSale" como número de "Meses" e é exibida na coluna "DaysSinceSale".

SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateofSale" como número de "Dias" e é exibida na coluna "DaysSinceSale".

SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateofSale" como número de "Dias" e é exibida na coluna "DaysSinceSale".

SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateofSale" como número de 'Dayss' e é exibida na coluna "DaysSinceSale". Se "DateofSale" cair em uma segunda-feira, DateDiff conta o número de segundas-feiras até a data do sistema. Ele conta a data do sistema, mas não o valor em "DateofSale".

SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateofSale" como número de "Semanas de Geração" e é exibida na coluna "DaysSinceSale". Ele conta o número de domingos entre "DateofSale" e "data do sistema". Ele vai contar a data do sistema se ele cair em um domingo; mas não conta "DateofSale", mesmo que caia em um domingo.

SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateTime" como número de 'Horas' e é exibida na coluna "DaysSinceSale".

SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateTime" como número de 'Minutos' e é exibida na coluna "DaysSinceSale".

SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales;

Retorna a diferença entre a data do sistema e "DateTime" como número de "segundos" e é exibida na coluna "DaysSinceSale".

Exemplo de expressão

Usar a função DateDiff em uma expressão     Você pode usar a função DateDiff onde quer que possa usar expressões. Por exemplo, suponha que você tenha um formulário usado para atender aos pedidos do cliente. Na tabela Pedidos, você tem um campo chamado ReceiveBefore que contém a data pela qual o cliente precisa receber o pedido. Você pode usar a função DateDiff com uma caixa de texto no formulário para exibir o número de dias restantes antes que o pedido seja enviado.

Supondo que leve dez dias para enviar qualquer pedido, você definirá a propriedade Fonte de Controle da caixa de texto da seguinte maneira:

=DateDiff("d", Now(), [Orders].[ ReceiveBefore])-10

Quando você abre o formulário no modo de exibição Formulário, a caixa de texto exibe o número de dias restantes antes do envio da ordem. Se faltar menos de 10 dias para que o cliente precise receber o pedido, o número na caixa de texto será negativo e indicará quantos dias o pedido será atrasado se ele for enviado imediatamente.

Exemplo de VBA

Usar a função DateDiff no código VBA    

Este exemplo usa a função DateDiff para exibir o número de dias entre uma determinada data e hoje.

Dim TheDate As Date    ' Declare variables.Dim MsgTheDate = InputBox("Enter a date")Msg = "Days from today: " & DateDiff("d", Now, TheDate)MsgBox Msg

Confira também

Escolher a função de data certa

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.