Função DateDiff

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Retorna uma Variant (longa) que especifica o número de intervalos de tempo entre duas datas.

Sintaxe

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

A DateDiff função tem estes argumentos:

Argumento Descrição
interval Obrigatório. Expressão de cadeia de caracteres, que é o intervalo de tempo usado para calcular a diferença entre date1 e date2.
date1, date2 Obrigatório. Variante (Data). Duas datas que você deseja usar no cálculo.
firstdayofweek Opcional. Uma constante que especifica o primeiro dia da semana. Se você não especificar, o domingo será assumido.
firstweekofyear Opcional. Uma constante que especifica a primeira semana do ano. Se você não especificar, a primeira semana será a semana em que ocorre 1º de janeiro.

Configurações

O interval argumento tem estas configurações:

Configuração Descrição
yyyy Ano
q Trimestre
m Mês
y Dia do ano
d Dia
w Dia da semana
ww Semana
h Hora
n Minuto
s Segundo

O firstdayofweek argumento tem estas configurações:

Constante Valor Descrição
vbUseSystem 0 Usa 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 Usa a configuração da API NLS.
vbFirstJan1 1 Começa com a semana em que ocorre 1º de janeiro (padrão).
vbFirstFourDays 2 Começa com a primeira semana que tem pelo menos quatro dias no ano novo.
vbFirstFullWeek 3 Começa com a primeira semana completa do ano.

Comentários

Você pode usar a DateDiff função para determinar quantos intervalos de tempo especificados existem entre duas datas. Por exemplo, você pode usá-las 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, é possível usar Dia do ano ("y") ou Dia ("d"). Quando interval é o 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é date2. Isso conta, date2 mas não date1. Se interval for Semana ("ww"), no entanto, a DateDiff função retornará o número de semanas do calendário entre as duas datas. Ele conta o número de domingos entre date1 e date2. DateDiff date2 conta se cair em um domingo, mas não conta date1, mesmo que caia em um domingo.

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

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

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

Quando você compara 31 de dezembro com 1º de janeiro do ano seguinte, DateDiff pois o Ano ("yyyy") retorna 1, mesmo que apenas um dia tenha passado.

Observação

Para date1 e date2, se a configuração da Calendar propriedade for gregoriano, a data fornecida deverá ser gregoriano. Se o calendário for islâmico, a data fornecida deverá ser islâmico.

Exemplos de consulta DateDiff

Expressão. Resultados
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Retorna a diferença, em anos, entre a data 01/01/2010 e os valores no DateofSale campo.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em trimestres com base no ano civil, entre a data do sistema e DateofSale, e exibe-a DaysSinceSale na coluna.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em dias, entre a data do sistema e DateofSale, e a exibe na DaysSinceSale coluna.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em dias, entre a data do sistema e DateofSale, e a exibe na DaysSinceSale coluna.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em dias da semana, entre a data do sistema e DateofSale, e a exibe na DaysSinceSale coluna. 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 DateofSale valor.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em semanas de calendário, entre a data do sistema e DateofSale, e exibe-a DaysSinceSale na coluna. Conta o número de domingos entre DateofSale e a data do sistema. Ele conta a data do sistema se 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, em horas, entre a data do sistema e DateTime, e a exibe na DaysSinceSale coluna.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em minutos, entre a data do sistema e DateTime, e exibe-a DaysSinceSale na coluna.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Retorna a diferença, em segundos, entre a data do sistema e DateTime, e a exibe na DaysSinceSale coluna.

Usar a função DateDiff em uma expressão

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

Supondo que demore dez dias para o envio de qualquer pedido, defina a propriedade Fonte do Controle da caixa de texto da seguinte maneira:

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

Quando você abre o formulário no Modo Formulário, a caixa de texto exibe o número de dias restantes antes que o pedido seja enviado. Se faltarem menos de 10 dias para que o cliente precise receber o pedido, o número na caixa de texto será negativo. Indica quantos dias de atraso o pedido estará se você o enviar imediatamente.

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

Este exemplo usa a DateDiff função 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

Veja Também

Escolher a função de data certa