Aplica-se a
Access 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 estes argumentos:

Argumento

Descrição

intervalo

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

date1, date2

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

primeirodiadasemana

Opcional. Uma 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 argumento de intervalo tem estas definiçõ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 as seguintes definições:

Constante

Valor

Descrição

vbUseSystem

0

Utilize a definição da API NLS.

vbSunday

1

Domingo (predefiniçã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

Utilize a definição da API NLS.

vbFirstJan1

1

Comece com a semana em que ocorre 1 de janeiro (predefiniçã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

Pode utilizar a função DateDiff para determinar quantos intervalos de tempo especificados existem entre duas datas. Por exemplo, pode utilizar 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, pode utilizar o Dia do ano ("y") ou o Dia ("d"). Quando o intervalo é Dia da Semana ("w"), DateDiff devolve o número de semanas entre as duas datas. Se date1 se enquadrar numa segunda-feira, DateDiff conta o número de segundas-feiras até à data2. Conta data2 , mas não data1. No entanto, se o intervalo for Semana ("ww"), a função DateDiff devolve o número de semanas de calendário entre as duas datas. Conta o número de domingos entre date1 e date2. DateDiff conta data2 se cair num domingo; mas não conta date1, mesmo que caia num domingo.

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

O primeiro argumentodayofweek afeta os cálculos que utilizam 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".

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.

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 Msg
TheDate = 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.