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).
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
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 |
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 o Diminuisci decimali .
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ì |
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.
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 DTETable
tipo di dati ID: Numerazione automatica tipo di dati DTEData: Data/ora estesa tipo di dati DTData: Data/oraAd 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 è: 1Vedere anche
Introduzione ai tipi di dati e alle proprietà dei campi