Funzione DateDiff

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Restituisce un oggetto Variant (Long) che specifica il numero di intervalli di tempo tra due date.

Sintassi

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

Gli DateDiff argomenti della funzione sono i seguenti:

Argomento Descrizione
interval Obbligatorio. Espressione stringa che rappresenta l'intervallo di tempo utilizzato per calcolare la differenza tra date1 e date2.
date1, date2 Obbligatori. Variant (Date). Due date da utilizzare nel calcolo.
firstdayofweek Facoltativo. Costante che specifica il primo giorno della settimana. Se non lo specifichi, si presume domenica.
firstweekofyear Facoltativo. Una costante che specifica la prima settimana dell'anno. Se non si specifica questa opzione, la prima settimana è quella in cui si verifica il 1° gennaio.

Impostazioni

L'argomento interval ha queste impostazioni:

Impostazione Descrizione
yyyy Anno
q Trimestre
m Mese
y Giorno dell'anno
d Giorno
w Weekday
ww Settimana
h Ora
n Minuto
s Secondo

L'argomento firstdayofweek ha queste impostazioni:

Costante Valore Descrizione
vbUseSystem 0 Usa l'impostazione API NLS.
vbSunday 1 Domenica (impostazione predefinita)
vbMonday 2 Lunedì
vbTuesday 3 Martedì
vbWednesday 4 Mercoledì
vbThursday 5 Giovedì
vbFriday 6 Venerdì
vbSaturday 7 Sabato
Costante Valore Descrizione
vbUseSystem 0 Usa l'impostazione API NLS.
vbFirstJan1 1 Inizia con la settimana in cui si verifica il 1° gennaio (impostazione predefinita).
vbFirstFourDays 2 Inizia con la prima settimana che ha almeno quattro giorni nel nuovo anno.
vbFirstFullWeek 3 Inizia con la prima settimana completa dell'anno.

Osservazioni

È possibile usare la DateDiff funzione per determinare il numero di intervalli di tempo specificati tra due date. Ad esempio, è possibile calcolare DateDiff il numero di giorni compresi tra due date o il numero di settimane tra oggi e la fine dell'anno.

Per calcolare il numero di giorni compresi tra date1 e date2, è possibile utilizzare Giorno dell'anno ("y") o Giorno ("d"). Quando interval è Weekday ("w"), DateDiff restituisce il numero di settimane tra le due date. Se date1 cade di lunedì, DateDiff conta il numero di lunedì fino a date2. Conta date2 ma non date1. Se interval è Week ("ww"), tuttavia, la DateDiff funzione restituisce il numero di settimane di calendario tra le due date. Conta il numero di domeniche comprese tra date1 e date2. DateDiff conta date2 se cade di domenica, ma non conta date1, anche se cade di domenica.

Se date1 fa riferimento a un momento successivo a date2, la DateDiff funzione restituisce un numero negativo.

L'argomento firstdayofweek influisce sui calcoli che utilizzano i simboli di "w" intervallo e "ww" .

Se date1 o date2 è un valore letterale di data, l'anno specificato diventa una parte permanente di tale data. date1 Se invece OR date2 è racchiuso tra virgolette doppie (" ") e si omette l'anno, l'anno corrente viene inserito nel codice ogni volta che viene valutata l'espressione date1 ORdate2. In questo modo è possibile scrivere codice che è possibile usare in anni diversi.

Quando si confronta il 31 dicembre con il 1° gennaio dell'anno successivo, DateDiff per l'anno ("yyyy") restituisce 1 anche se è trascorso un solo giorno.

Nota

For date1 e date2, se l'impostazione della Calendar proprietà è gregoriana, la data specificata deve essere gregoriana. Se il calendario è Hijri, la data specificata deve essere basata sul calendario Hijri.

Esempi di query DateDiff

Espressione Risultati
SELECT DateDiff("yyyy",#01/01/2010#,[DateofSale]) AS Expr1 FROM ProductSales; Restituisce la differenza, in anni, tra la data 01/01/2010 e i valori nel DateofSale campo.
SELECT DateDiff("q",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, espressa in trimestri in base all'anno di calendario, tra la data di sistema e DateofSalee la DaysSinceSale visualizza nella colonna.
SELECT DateDiff("y",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, in giorni, tra la data di sistema e DateofSale, e la DaysSinceSale visualizza nella colonna.
SELECT DateDiff("d",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, in giorni, tra la data di sistema e DateofSale, e la DaysSinceSale visualizza nella colonna.
SELECT DateDiff("w",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, espressa nei giorni lavorativi, tra la data di sistema e DateofSalee la DaysSinceSale visualizza nella colonna. Se DateofSale cade di lunedì, DateDiff conta il numero di lunedì fino alla data di sistema. Conta la data di sistema, ma non il DateofSale valore.
SELECT DateDiff("ww",[DateofSale],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, espressa in settimane di calendario, tra la data di sistema e DateofSalee la DaysSinceSale visualizza nella colonna. Conta il numero di domeniche comprese tra DateofSale la data di sistema e la data di sistema. Conta la data di sistema se cade di domenica, ma non conta DateofSale, anche se cade di domenica.
SELECT DateDiff("h",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, in ore, tra la data di sistema e DateTimee la DaysSinceSale visualizza nella colonna.
SELECT DateDiff("n",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, in minuti, tra la data di sistema e DateTime, e la DaysSinceSale visualizza nella colonna.
SELECT DateDiff("s",[DateTime],Date()) AS DaysSinceSale FROM ProductSales; Restituisce la differenza, in secondi, tra la data di sistema e DateTimee la DaysSinceSale visualizza nella colonna.

Usare la funzione DateDiff in un'espressione

È possibile usare la DateDiff funzione ovunque si possano usare le espressioni. Si supponga, ad esempio, di usare una maschera per completare gli ordini dei clienti. Nella tabella Ordini è presente un campo denominato ReceiveBefore che contiene la data entro la quale il cliente deve ricevere l'ordine. Puoi utilizzare la DateDiff funzione con una casella di testo nel modulo per visualizzare il numero di giorni rimanenti prima della spedizione dell'ordine.

Supponendo che siano necessari dieci giorni per la spedizione di un ordine, impostare la proprietà Origine controllo della casella di testo come indicato di seguito:

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

Quando si apre la maschera in visualizzazione Maschera, nella casella di testo viene visualizzato il numero di giorni rimanenti prima della spedizione dell'ordine. Se mancano meno di 10 giorni alla ricezione dell'ordine da parte del cliente, il numero nella casella di testo è negativo. Indica quanti giorni sarà in ritardo l'ordine se lo spedisci immediatamente.

Usare la funzione DateDiff nel codice VBA

In questo esempio viene usata la DateDiff funzione per visualizzare il numero di giorni compresi tra una determinata data e la data corrente.

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

Vedere anche

Scegliere la funzione di data corretta