Função DifData

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

Devolve uma Variante (Longo) 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 que corresponde ao intervalo de tempo utilizado para calcular a diferença entre date1 e date2.
date1, date2 Obrigatório. Variant (Date). Duas datas que pretende utilizar no cálculo.
firstdayofweek Opcional. Uma constante que especifica o primeiro dia da semana. Se não o especificar, domingo é considerado o primeiro dia.
firstweekofyear Opcional. Uma constante que especifica a primeira semana do ano. Se não o especificar, a primeira semana é a semana de 1 de janeiro.

Definições

O interval argumento tem as seguintes definições:

Definiçã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 as seguintes definições:

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

Observações

Pode utilizar a DateDiff função 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 a 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 interval é Dia da Semana ("w"), DateDiff devolve o número de semanas entre as duas datas. Se date1 cai em uma segunda-feira, DateDiff conta o número de segundas-feiras até date2. Conta, mas não date1contadate2. No entanto, se intervalDateDiff for Semana ("ww"), a função devolve o número de semanas do calendário entre as duas datas. Conta o número de domingos entre date1 e date2. DateDiff date2 conta se cair num domingo, mas não contadate1, mesmo que caia num domingo.

Se date1 se referir a um ponto posterior no tempo do , date2a DateDiff função devolve um número negativo.

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

Se date1 ou date2 for uma data literal, o ano especificado torna-se uma parte permanente dessa data. No entanto, se date1 estiver entre date2 aspas (" ") e omitir o ano, o ano atual é inserido no código sempre que a date1 expressão for date2 avaliada. Isto permite escrever código que pode utilizar em anos diferentes.

Quando compara 31 de dezembro a 1 de janeiro do ano seguinte, DateDiff para o Ano ("yyyy") devolve 1 mesmo que tenha passado apenas um dia.

Nota

Para date1 e date2, se a definição da Calendar propriedade for Gregoriano, a data fornecida tem de ser Gregoriana. Se o calendário for Hijri, a data fornecida tem de ser Hijri.

Exemplos de Consulta DateDiff

Expressão Resultados
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Devolve 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; Devolve a diferença, em trimestres baseados no ano civil, entre a data do sistema e DateofSale, e apresenta-a DaysSinceSale na coluna.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em dias, entre a data do sistema e DateofSale, e apresenta-a DaysSinceSale na coluna.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em dias, entre a data do sistema e DateofSale, e apresenta-a DaysSinceSale na coluna.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em dias úteis, entre a data do sistema e DateofSale, e apresenta-a DaysSinceSale na coluna. Se DateofSale cair numa segunda-feira, DateDiff conta o número de segundas-feiras até à data do sistema. Conta a data do sistema, mas não o DateofSale valor.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em semanas do calendário, entre a data do sistema e DateofSale, e apresenta-a DaysSinceSale na coluna. Conta o número de domingos entre DateofSale e a data do sistema. Conta a data do sistema se cair num domingo, mas não conta DateofSale, mesmo que caia num domingo.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em horas, entre a data do sistema e DateTime, e apresenta-a DaysSinceSale na coluna.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em minutos, entre a data do sistema e DateTime, e apresenta-a DaysSinceSale na coluna.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Devolve a diferença, em segundos, entre a data do sistema e DateTime, e apresenta-a DaysSinceSale na coluna.

Utilizar a função DifData numa expressão

Pode utilizar a função onde for possível utilizar expressões DateDiff . Por exemplo, imagindmox que tem um formulário que utiliza para realizar encomendas de clientes. Na tabela Encomendas, tem um campo com o nome ReceiveBefore que contém a data em que o cliente tem de receber a encomenda. Pode utilizar a DateDiff função com uma caixa de texto no formulário para apresentar o número de dias restantes antes do envio da encomenda.

Partindo do princípio de que demora dez dias a enviar qualquer encomenda, defina a propriedade Origem do Controlo da caixa de texto da seguinte forma:

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

Quando abrir o formulário na Vista Formulário, a caixa de texto apresenta o número de dias restantes antes do envio da encomenda. Se faltarem menos de 10 dias para o cliente precisar receber o pedido, o número na caixa de texto é negativo. Indica quantos dias de atraso a encomenda terá se a enviar imediatamente.

Utilizar a função DateDiff em código VBA

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

Consulte Também

Escolher a função de data correta