Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento descrive il supporto di SQL Server Native Client per i tipi di dati di data e ora aggiunti in SQL Server 2008.
Per altre informazioni sui miglioramenti di data/ora, vedere Miglioramenti di data e ora (OLE DB) e miglioramenti di data e ora (ODBC).
Per informazioni sulle applicazioni di esempio che illustrano questa funzionalità, vedere Esempi di programmazione dati di SQL Server.
Uso
Le sezioni seguenti descrivono diversi modi per usare i nuovi tipi di data e ora.
Usare Date come tipo di dati distinct
A partire da SQL Server 2008, il supporto avanzato per i tipi di data/ora rende più efficiente usare il tipo ODBC SQL_TYPE_DATE (SQL_DATE per le applicazioni ODBC 2.0) e il tipo OLE DB DBTYPE_DBDATE.
Usare l'ora come tipo di dati distinct
OLE DB dispone già di un tipo di dati che contiene solo l'ora, DBTYPE_DBTIME, che ha una precisione di 1 secondo. In ODBC il tipo equivalente è SQL_TYPE_TIME (SQL_TIME per le applicazioni ODBC 2.0).
Il nuovo tipo di dati time di SQL Server ha secondi frazionari accurati a 100 nanosecondi. Sono necessari nuovi tipi in SQL Server Native Client: DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC). Le applicazioni esistenti scritte per usare i tempi senza secondi frazionari possono usare colonne time(0). I tipi di DBTYPE_TIME OLE DB e ODBC SQL_TYPE_TIME esistenti e i relativi struct devono funzionare correttamente, a meno che le applicazioni non si basano sul tipo restituito nei metadati.
Usare time come tipo di dati distinct con precisione frazionaria estesa
Alcune applicazioni, ad esempio il controllo dei processi e le applicazioni di produzione, richiedono la possibilità di gestire i dati temporali con una precisione massima di 100 nanosecondi. I nuovi tipi a questo scopo sono DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC).
Usare datetime con precisione frazionaria estesa
OLE DB definisce già un tipo con precisione fino a 1 nanosecondo. Tuttavia, questo tipo è già usato dalle applicazioni SQL Server esistenti e tali applicazioni hanno un'aspettativa di solo 1/300 di una seconda precisione. Il nuovo datetime2(3) tipo non è direttamente compatibile con il tipo datetime esistente. Se esiste un rischio che ciò influirà sul comportamento dell'applicazione, le applicazioni devono usare un nuovo flag DBCOLUMN per determinare il tipo di server effettivo.
ODBC definisce anche un tipo con precisione fino a 1 nanosecondo. Tuttavia, questo tipo è già usato dalle applicazioni SQL Server esistenti e tali applicazioni prevedono solo una precisione di 3 millisecondi. Il nuovo datetime2(3) tipo non è direttamente compatibile con il tipo esistente datetime .
datetime2(3) ha una precisione di un millisecondo e datetime ha una precisione di 1/300 di secondo. In ODBC le applicazioni possono determinare il tipo di server in uso con il campo descrittore SQL_DESC_TYPE_NAME. Pertanto, il tipo esistente SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP per le applicazioni ODBC 2.0) può essere usato per entrambi i tipi.
Usare Datetime con precisione e fuso orario frazionari estesi
Alcune applicazioni richiedono valori datetime con informazioni sul fuso orario. Questa opzione è supportata dai nuovi tipi DBTYPE_DBTIMESTAMPOFFSET (OLE DB) e SQL_SS_TIMESTAMPOFFSET (ODBC).
Usare dati Date/Time/Datetime/Datetimeoffset con conversioni Client-Side coerenti con le conversioni esistenti
Lo standard ODBC descrive il funzionamento delle conversioni tra tipi di data, ora e timestamp esistenti. Questi vengono estesi in modo coerente per includere le conversioni tra tutti i tipi di data e ora introdotti in SQL Server 2008.