Come apportare una modifica alle date usando funzioni e operatori in Access

Le informazioni in questo articolo si applicano ai file di database di Microsoft Access con estensione .mdb oppure .accdb e ai file di progetto di Microsoft Access con estensione .adp.

Moderato: richiede competenze di base di macro, codifica e interoperabilità.

Riepilogo

Questo articolo descrive le funzioni e gli operatori disponibili in Microsoft Office Access 2007, in Microsoft Office Access 2003 e in Microsoft Access 2002. È possibile usare le funzioni e gli operatori per apportare una modifica al tipo di dati Data/ora usando query di esempio. Le query di esempio che è possibile usare per apportare una modifica ai valori di data usano le tabelle nel database di esempio Northwind.mdb.

Nota

Il database di esempio Northwind per Access 2007 non usa gli stessi campi delle versioni precedenti del database di esempio Northwind. Nella tabella Employees non sono inclusi campi HireDate e BirthDate inclusi nel database di esempio Northwind per Access 2007. Il campo EMPLOYEEID è stato rinominato ID e il campo FirstName è stato rinominato First Name.

Ulteriori informazioni

Access fornisce operatori e funzioni per convalidare o apportare una modifica ai campi con il tipo di dati Data/ora. Le query di esempio seguenti usano le manipolazioni della data, le funzioni di calcolo e gli operatori di confronto disponibili in Access.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. I tecnici di supporto tecnico Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessuno caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

Funzione Date(), funzione Now() e funzione Format()

SELECT Date(), Now();

La funzione Date() restituisce la data corrente nel formato di data breve. La funzione Now() restituisce la data corrente con l'ora.

SELECT Format(Now(), "dd mmmm yyyy");

È possibile usare la funzione Format() con valori di data per specificare il formato di data che si desidera utilizzare per la data. Questa query di esempio restituisce la data corrente nel formato long date (01 dicembre 2003).

Funzione Day(), funzione WeekDay(), funzione Month() e funzione Year()

SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

Dalla tabella Dipendenti questa query restituisce la data di assunzione, il giorno del noleggio, il giorno della settimana di assunzione, il mese di assunzione e l'anno di assunzione per ogni dipendente. Si noti che la funzione WeekDay() restituisce un valore numerico che indica il giorno della settimana.

Funzione DatePart()

SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

Dalla tabella Employees questa query restituisce tutti i dipendenti nati prima dell'anno 1960. La funzione DatePart() può essere usata per estrarre la parte della data specificata, ad esempio il giorno, il mese o l'anno.

Funzione DateDiff()

SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

Dalla tabella Employees questa query restituisce l'ID dipendente, il nome, la data di nascita e l'età di ogni dipendente. La funzione DateDiff() restituisce la differenza o il ritardo di tempo tra i due valori di data specificati (in termini di giorno, mese, anno o unità di tempo, ad esempio ore, minuti e secondi).

Funzione DateAdd()

SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

Dalla tabella Employees questa query restituisce l'ID dipendente, il nome, la data di assunzione e la data in cui il dipendente termina i 10 anni di servizio con la società. La funzione DateAdd() incrementa una data di un numero specificato di unità di tempo, ad esempio un giorno, un mese o un anno, e quindi restituisce il valore risultante.

È possibile aggiungere direttamente un valore numerico a un valore di data. Eseguire questa operazione per incrementare il valore della data di un giorno, come nell'esempio seguente:

SELECT Date() + 1 ;

Questa query incrementa la data corrente di un giorno e quindi restituisce il valore di data risultante.

Funzione DateValue()

SELECT DateValue("20 Nov 2003") AS ValidDate;

La funzione DateValue() verifica se la stringa di input è una data valida. Se la stringa di input viene riconosciuta come data valida, la data viene restituita in formato data breve. Se la stringa di input non è riconosciuta come data valida, viene restituita l'istruzione "Tipo di dati non corrispondente nell'espressione criteri". La funzione DateValue() riconosce un'ampia gamma di formati di data, ad esempio mm dd aaaaa, gg mm aaaaa, gg mmm aaaa e gg mmm aaaa hh:mm:ss formato data lunga.

Funzione DateSerial()

SELECT DateSerial( 2003, 03, 1-1);

La funzione DateSerial() restituisce il valore di data per i parametri di input specificati di anno, mese e giorno. I parametri di input possono essere espressioni che coinvolgono operazioni aritmetiche. La funzione DateSerial() valuta le espressioni nei parametri di input prima che restituisca il valore di data risultante.

Questa query di esempio restituisce l'ultimo giorno del mese di febbraio per l'anno 2003. L'ultimo parametro di input per il giorno con valore 1 viene decrementato di 1. Il risultato è che il parametro month viene valutato su 2.

Usare operatori di confronto con valori di data

È possibile usare gli operatori di confronto seguenti per confrontare i valori di data nelle espressioni e nelle query:

  • < (inferiore a)
  • > (maggiore di)
  • <= (minore o uguale a)
  • >= (maggiore o uguale a)
  • <> (diverso da uguale)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

Questa query usa l'operatore >di confronto = e l'operatore <di confronto = per verificare se la data di assunzione del dipendente rientra nell'intervallo delle due date specificate. Questa query recupera i record di tutti i dipendenti assunti nell'ultimo trimestre dell'anno civile 1993.

SELECT * FROM Employees
WHERE HireDate <> Date();

Questa query usa l'operatore di confronto delle disuguaglianze per recuperare i record di tutti i dipendenti che hanno una data di assunzione diversa dalla data corrente.

Funzione WeekdayName()

SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;

La funzione WeekdayName() restituisce una stringa che indica il giorno della settimana, come specificato nel primo parametro. Il giorno della stringa della settimana restituita dipende dal terzo parametro. Questo parametro imposta il primo giorno della settimana. Il secondo parametro è impostato su False per specificare che il nome del giorno della settimana non deve essere abbreviato.

Questa query di esempio restituisce il valore Sunday come primo giorno della settimana.

Funzione MonthName()

SELECT MonthName(1);

La funzione MonthName() restituisce una stringa che indica il nome del mese per il numero di mese specificato compreso tra 1 e 12. Il parametro di input può anche essere un'espressione, come nella query seguente:

SELECT MonthName( DatePart("m", Date()) );

Questa query restituisce il nome del mese corrente.

Riferimenti

Per altre informazioni, fare clic sui numeri degli articoli seguenti per visualizzare gli articoli della Microsoft Knowledge Base:

  • 290178 Come creare una query con parametri per valutare criteri complessi in Microsoft Access
  • 290190 Come creare due funzioni per calcolare l'età in mesi e anni in Microsoft Access