Miglioramenti di data e ora di SQL Server Native Client

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server o alla versione più recente di Microsoft ODBC Driver per SQL Server . Per SQLNCLI fornito come componente del motore di database di SQL Server (versioni da 2012 a 2019), vedere questa eccezione relativa al ciclo di vita del supporto.

Questo argomento descrive il supporto di SQL Server Native Client per i tipi di dati di data e ora aggiunti in SQL Server 2008 (10.0.x).

Per altre informazioni sui miglioramenti di data/ora, vedere Miglioramenti di data e ora (OLE DB) e miglioramenti di data e ora (ODBC).

Utilizzo

Nelle sezioni seguenti vengono descritte le diverse modalità di utilizzo dei nuovi tipi di data e ora.

Utilizzare il tipo date come tipo di dati distinto

A partire da SQL Server 2008 (10.0.x), 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.

Utilizzare il tipo time come tipo di dati distinto

OLE DB include già un tipo di dati che contiene solo l'ora, ovvero DBTYPE_DBTIME, che garantisce precisione pari a 1 secondo. Il tipo equivalente in ODBC è SQL_TYPE_TIME (SQL_TIME per le applicazioni ODBC 2.0).

Il nuovo tipo di dati time di SQL Server ha una precisione frazionaria dei secondi pari 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 utilizzare le ore senza secondi frazionari possono utilizzare colonne time(0). I tipi OLE DB DBTYPE_TIME e ODBC SQL_TYPE_TIME esistenti e le strutture corrispondenti funzioneranno correttamente, a meno che le applicazioni non si basino sul tipo restituito nei metadati.

Utilizzare il tipo time come tipo di dati distinto con precisione frazionaria dei secondi estesa

Alcune applicazioni, ad esempio le applicazioni di controllo dei processi e di produzione, richiedono la possibilità di gestire i dati di tipo time con una precisione pari a fino 100 nanosecondi. I nuovi tipi a tale scopo sono DBTYPE_DBTIME2 (OLE DB) e SQL_SS_TIME2 (ODBC).

Utilizzare il tipo datetime con precisione frazionaria dei secondi estesa

OLE DB definisce già un tipo con una precisione pari fino a 1 nanosecondo. Questo tipo, tuttavia, è già usato dalle applicazioni di SQL Server esistenti, che garantiscono una probabile precisione pari solo a 1/300 di secondo. Il nuovo tipo datetime2(3) non è direttamente compatibile con il tipo datetime esistente. Se vi è un rischio che tale tipo di dati influisca negativamente sul comportamento dell'applicazione, le applicazioni devono utilizzare un nuovo flag DBCOLUMN per determinare il tipo di server effettivo.

Anche ODBC definisce già un tipo con una precisione pari 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 tipo datetime2(3) non è direttamente compatibile con il tipo datetime esistente. 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 tramite il campo di descrizione SQL_DESC_TYPE_NAME. Il tipo SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP per le applicazioni ODBC 2.0) esistente può essere utilizzato per entrambi i tipi.

Utilizzare il tipo datetime con precisione frazionaria dei secondi estesa e fuso orario

Alcune applicazioni richiedono valori datetime con informazioni sul fuso orario. Questo requisito è supportato dai nuovi tipi DBTYPE_DBTIMESTAMPOFFSET (OLE DB) e SQL_SS_TIMESTAMPOFFSET (ODBC).

Utilizzare dati di tipo date/time/datetime/datetimeoffset con conversioni sul lato client coerenti con le conversioni esistenti

Lo standard ODBC descrive il funzionamento delle conversioni tra tipi di data, ora e timestamp. Questi vengono estesi in modo coerente per includere le conversioni tra tutti i tipi di data e ora introdotti in SQL Server 2008 (10.0.x).

Vedi anche

Funzionalità di SQL Server Native Client