Applies ToAccess per Microsoft 365 Access 2024 Access 2021

Il tipo di dati Data/ora estesa archivia le informazioni relative alla data e all'ora analogamente al tipo di dati Data/ora, pur fornendo un intervallo di date più ampio, una precisione frazionaria superiore e maggiore compatibilità con il tipo di data datetime2 di SQL Server. Con l'importazione o il collegamento di dati di Access a SQL Server, è possibile associare costantemente un campo Data/ora estesa di Access a una colonna datetime2 di SQL Server. Per altre informazioni, vedere datetime2 (Transact-SQL).

Intervallo Data/ora estesa

Avviso    L'uso di funzioni Data/ora in base al tipo di dati Data/ora estesa di Access, durante la creazione di espressioni, potrebbe comportare una minore precisione nei calcoli o il verificarsi di altri problemi con i risultati. Il problema è noto e nella prossima release è previsto un supporto migliore di espressioni e funzioni. Per risolvere il problema, è possibile creare una query pass-through per usare le funzioni data/ora e l'espressione SQL Server equivalenti. Per ulteriori informazioni, vedere Confronto tra SQL per Access e T-SQL per SQL Server.

Contenuto dell'articolo

Confronto tra i tipi di dati Data/ora e Data/ora estesa

Utilizzo del tipo di dati Data/ora estesa

Considerazioni sulla compatibilità con le versioni precedenti

Utilizzo del tipo di dati Data/ora estesa come una stringa di VBA

Confronto tra i tipi di dati Data/ora e Data/ora estesa

Nelle tabelle seguenti sono riepilogate le importanti differenze tra i due tipi di dati.

Attributo

Data/ora

Data/ora estesa

Valore minimo

100-01-01 00:00:00

0001-01-01 00:00:00

Valore massimo

9999-12-31 23:59:59.999

9999-12-31 23:59:59.9999999

Precisione

0,001 secondi

1 nanosecondo

Dimensione

Virgola mobile a precisione doppia

Stringa codificata di 42 byte

Inizio pagina

Utilizzo del tipo di dati Data/ora estesa

Le informazioni seguenti descrivono importanti considerazioni sull'utilizzo.

Visualizzazione Struttura per le tabelle    Per sfruttare l'intervallo di dati più ampio e una maggiore precisione, è possibile aggiungere un campo a una tabella di Access. È anche possibile convertire un tipo di dati Data/ora nel tipo di dati Data/ora estesa nella visualizzazione Struttura per le tabelle. L'uso di questo tipo di dati è supportato anche come campo di chiave primaria. Per altre informazioni, vedere Creare una tabella e aggiungere campi.

Immissione di data e ora   L'immissione di valori data e ora è analoga a quella del tipo di dati Data/ora, con la differenza che è anche possibile immettere un nanosecondo frazionario. Ad esempio:

  • Formato di immissione: mm/gg/aaaa hh: mm: ss. nnnnnnn

  • Ad esempio: 06/15/1215 09:25:3.234

Se sono presenti più di 7 nanosecondi frazionari, sono arrotondati a 7 cifre. Per controllare la visualizzazione dei nanosecondi frazionari, aprire la tabella, sulla barra multifunzione selezionare Campie, nel gruppo Formattazione, selezionare Aumenta decimali Linea orizzontale creata con Formattazione automatica trattino o Diminuisci decimali Icona del pulsante.

Formattazione    I tipi di dati Data/ora e Data/ora estesa usano entrambi stringhe di formattazione standard simili di Data generica, Data estesa, Data breve, Data breve, Ora estesa, Ora breve 12h e Ora breve ed entrambi supportano la formattazione personalizzata. Per il tipo di dati Data/ora estesa, i formati standard basati sull'ora supportano anche precisione frazionaria per i nanosecondi. La formattazione del tipo di dati Data/ora estesa assume il valore predefinito dei formati Data generica e Ora estesa e segue le opzioni specificate nelle Impostazioni internazionali di Windows. È anche possibile controllare la formattazione della precisione frazionaria usando la proprietà Posizioni decimali per specificare il numero di cifre a destra della virgola decimale (da 1 a 7).

Collegamento e importazione    È anche possibile creare un collegamento o importare da database con il tipo di dati corrispondente, ad esempio il tipo di dati datetime2 di SQL Server. Sono supportati i database SQL Server versione 2014 o successive. Il tipo di dati Data/ora estesa richiede l'uso di Microsoft ODBC Driver for SQL Server 11 o versione successiva. È consigliabile usare Microsoft ODBC Driver for SQL Server 13.1. È supportato anche l'uso di OLE DB. Per altre informazioni, vedere Opzioni di supporto del tipo di dati per i miglioramenti di data e ora ODBC e Utilizzo di funzionalità di data e ora avanzate (OLE DB).

Maschere e report    Il tipo di dati Data/ora estesa può essere aggiunto a una maschera o a un report. In una maschera è possibile usare il controllo selezione data e la maschera di input per immettere una data con l'intervallo più ampio, ma non la precisione frazionaria per i nanosecondi.

Supporto delle espressioni   Il tipo di dati Data/ora estesa supporta Funzioni di aggregazione SQL e la valutazione delle espressioni. Ad esempio, se si usa LoggedDateTime come campo con il tipo di dati Data/ora estesa:

Attività

Esempio

Risultato

Individuare il valore minimo

Min (LoggedDateTime)

La prima data e ora dell'intervallo

Estrarre il mese

Mese (LoggedDateTime)

Il nome del mese, ad esempio gennaio

Aggiungere un giorno

[LoggedDateTime]+1

Martedì diventerà mercoledì

Inizio pagina

Considerazioni sulla compatibilità con le versioni precedenti

Il tipo di dati Data/ora estesa non è compatibile con le versioni precedenti di Microsoft Access. Se il tipo viene usato all'interno di una tabella di Access locale, le versioni di Access che non includono la caratteristica non potranno aprire il database.

È possibile abilitare o disabilitare il tipo di dati Data/ora estesa per le operazioni di collegamento e importazione con l'opzione Accesso al database correnteche supporta il tipo di dati esteso Data/ora per le tabelle collegate/lmported. Per altre informazioni, vedere Impostare le opzioni utente per il database corrente.

Inizio pagina

Utilizzo del tipo di dati Data/ora estesa come una stringa di VBA

I seguenti esempi di VBA usano metodi DAO per visualizzare, immettere e valutare il tipo di dati Data/ora estesa in base alla tabella seguente.

ID

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

Nome di tabella    DTETabletipo di dati ID:    Numerazione automaticatipo di dati DTEData:    Data/ora estesatipo di dati DTData:    Data/ora

Ad esempio: Visualizzazione di data e ora

L'esempio seguente mostra la data e l'ora. Il formato usato è mm/gg/aaaa hh:mm:ss.nnnnnnn in 24 ore. Il formato non è personalizzabile.

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
Do Until rs.EOF
    Debug.Print rs!DTETable
    rs.MoveNext
Loop

Risultato    Access mostra: 01/01/0002 01:01:03.1234567.

Ad esempio: Immissione di data e ora

L'esempio seguente immette la data e l'ora con un formato stringhe. Sono supportati tutti i formati standard di data e ora.

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("DTETable")
With CurrentDb.OpenRecordset("DTETable")
    .AddNew
    ![DTEData] = "1/1/9999 1:1:1.0123 AM"
    ![DTData] = #1/1/2001#
    .Update
End With

Risultato    Access aggiunge una nuova riga (ID = 2):

ID

DTEData

DTData

1

1/1/2 1:01:03.1234567 AM

1/1/2001

2

1/1/9999 1:01:01.0123000 AM

1/1/2001

Ad esempio: Valutazione di un'espressione di query

Nell'esempio seguente viene usata la Funzione Day per estrarre il numero di giorno dai campi di data e ora.

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Day(DTEData) as day FROM DTETable")
Do Until rs.EOF
    Debug.Print "The day of the month is: "&rs!day
    rs.MoveNext
Loop

Risultato    Access mostra:

Il giorno del mese è: 1 Il giorno del mese è: 1

Inizio pagina

Vedere anche

Introduzione ai tipi di dati e alle proprietà dei campi

Formattare un campo di data e ora

Creare o eliminare un campo di data e ora

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.