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

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

Sintassi

DateDiff ( intervallo, data1, data2 [, primogiornosett] [, primasettanno] )

La sintassi della funzione DateDiff ha gli argomenti seguenti:

Argomento

Descrizione

intervallo

Obbligatorio. Espressione stringa che rappresenta l'intervallo di tempo usato per calcolare la differenza tra data1 e data2.

data1, data2

Obbligatori. Variant (Date). Due date da usare nel calcolo.

primogiornosett

Facoltativo. Una costante che specifica il primo giorno della settimana. Se non è specificato, viene usato il valore Sunday.

primasettanno

Facoltativo. Costante che specifica la prima settimana dell'anno. Se non è specificato, verrà considerata come prima settimana quella in cui cade l'1 gennaio.

Impostazioni

L'argomentointervallo ha queste impostazioni:

Impostazione

Descrizione

yyyy

Anno

q

Trimestre

m

Mese

y

Giorno dell'anno

d

Giorno

w

Giorno della settimana

ww

Settimana

h

Ora

n

Minuto

s

Secondo

L'argomento primogiornosett ha queste impostazioni:

Costante

Valore

Descrizione

vbUseSystem

0

Viene usata l'impostazione di NLS API.

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

Viene usata l'impostazione di NLS API.

vbFirstJan1

1

La prima settimana è quella in cui cade l'1 gennaio (impostazione predefinita).

vbFirstFourDays

2

La prima settimana corrisponde alla prima che contiene almeno quattro giorni nel nuovo anno.

vbFirstFullWeek

3

La prima settimana corrisponde alla prima settimana completa dell'anno.

Osservazioni

È possibile usare la funzione DateDiff per determinare quanti intervalli di tempo specificati sono presenti tra due date. Ad esempio, è possibile usare DateDiff per calcolare il numero di giorni tra due date oppure il numero di settimane tra il giorno corrente e la fine dell'anno.

Per calcolare il numero di giorni tra data1 e data2, è possibile usare il valore del giorno dell'anno ("y") o del giorno ("d"). Quando intervallo è impostato su "w" (giorno della settimana), DateDiff restituisce il numero di settimane tra le due date. Se data1 corrisponde a un lunedì, DateDiff conta il numero di lunedì fino a data2. La funzione calcola data2, ma non data1. Quando intervallo è impostato su "ww" (settimana), tuttavia, la funzione DateDiff restituisce il numero di settimane del calendario tra le due date. La funzione conta il numero di domeniche tra data1 e data2. DateDiff calcola data2 se corrisponde a una domenica, ma non calcola data1, neanche se corrisponde a una domenica.

Se data1 fa riferimento a una data successiva rispetto a data2, la funzione DateDiff restituisce un numero negativo.

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

Se data1 o data2 è un'valore letterale data, l'anno specificato diventa una parte permanente della data. Tuttavia, se data1 o data2 è racchiuso tra virgolette doppie (" ") e si omette l'anno, l'anno corrente viene inserito nel codice ogni volta che viene valutata l'espressione data1 o data2. Questo permette di scrivere codice da usare per anni diversi.

Nel confrontare il 31 dicembre con l'1 gennaio dell'anno immediatamente successivo, DateDiff per "yyyy" (anno) restituisce 1, anche se è passato un solo giorno.

Nota:  Se per data1 e data2, l'impostazione della proprietà Calendario è Gregoriano, la data specificata deve essere basata sul calendario gregoriano. 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 tra Data2 e Data1, ovvero Data1 come meno recente e Data2 come più recente, come numero di "Anni". Risultato: differenza tra i valori nel campo "DateofSale" e la data "01/01/2010" come numero di 'Anni'.

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

Restituisce la differenza tra la data del sistema e "DateofSale" come numero di 'Trimestri' (in base all'anno del calendario) e viene visualizzata nella colonna "DaysSinceSale". restituisce la differenza tra la data del sistema e "DateofSale" come numero di 'Mesi' e viene visualizzata nella colonna "DaysSinceSale".

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

Restituisce la differenza tra la data del sistema e "DateofSale" come numero di 'Giorni' e viene visualizzata nella colonna "DaysSinceSale".

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

Restituisce la differenza tra la data del sistema e "DateofSale" come numero di 'Giorni' e viene visualizzata nella colonna "DaysSinceSale".

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

Restituisce la differenza tra la data del sistema e "DateofSale" come numero di 'Giorni feriali' e viene visualizzata nella colonna "DaysSinceSale". Se "DateofSale" corrisponde a un lunedì, DateDiff conta il numero di lunedì fino alla data di sistema. Conta la data di sistema ma non il valore in "DateofSale".

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

Restituisce la differenza tra la data del sistema e "DateofSale" come numero di "Settimane calendario" e viene visualizzata nella colonna "DaysSinceSale". Conta il numero di domeniche tra "DateofSale" e "data di sistema". Contarà la data del 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 tra la data del sistema e "DateTime" come numero di 'Ore' e viene visualizzata nella colonna "DaysSinceSale".

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

Restituisce la differenza tra la data del sistema e "DateTime" come numero di 'Minuti' e viene visualizzata nella colonna "DaysSinceSale".

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

Restituisce la differenza tra la data del sistema e "DateTime" come numero di "secondi" e viene visualizzata nella colonna "DaysSinceSale".

Espressione di esempio

Usare la funzione DateDiff in un'espressione     È possibile usare la funzione DateDiff ovunque sia possibile usare espressioni. Si supponga, ad esempio, di usare una maschera per completare gli ordini dei clienti. Nella tabella Ordini è presente un campo chiamato RicezionePrimaDi che contiene la data entro la quale il cliente deve ricevere l'ordine. È possibile usare la funzione DateDiff con una casella di testo nella maschera per visualizzare il numero di giorni rimanenti entro cui è necessario spedire l'ordine.

Presupponendo che siano necessari dieci giorni per spedire qualsiasi ordine, impostare la proprietà .OrigineControllo della casella di testo in questo modo:

=DateDiff("d", Now(), [Ordini].[RicezionePrimaDi])-10

Quando si apre la maschera in visualizzazione Maschera, la casella di testo visualizza il numero di giorni rimanenti entro cui è necessario spedire l'ordine. Se restano meno di 10 giorni entro cui il cliente deve ricevere l'ordine, il numero nella casella di testo è negativo e indica il numero di giorni di ritardo dell'ordine se questo viene spedito immediatamente.

Esempio di VBA

Usare la funzione DateDiff nel codice VBA    

Questo esempio usa la funzione DateDiff per visualizzare il numero di giorni tra una data specifica e la data corrente.

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

Vedere anche

Scegliere la funzione di data corretta

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.