Tipi di dati di Integration Services

Si applica a:SQL Server SSIS Integration Runtime in Azure Data Factory

Quando i dati entrano in un flusso di dati di un pacchetto, l'origine che estrae i dati li converte in un tipo di dati di Integration Services. Ai dati numerici viene assegnato un tipo di dati numerico, ai dati di tipo stringa viene assegnato un tipo di dati carattere e alle date viene assegnato un tipo di dati data. Ad altri dati, ad esempio GUID e blocchi di oggetti binari di grandi dimensioni (BLOB), vengono inoltre assegnati i tipi di dati appropriati di Integration Services. Se i dati sono di un tipo non convertibile in un tipo di dati di Integration Services, verrà generato un errore.

Alcuni componenti flusso di dati convertono tipi di dati tra i tipi di dati di Integration Services e i tipi di dati gestiti di Microsoft .NET Framework. Per altre informazioni sul mapping tra Integration Services e tipi di dati gestiti, vedere Utilizzo di tipi di dati nel flusso di dati.

La tabella seguente elenca i tipi di dati di Integration Services. Alcuni tipi di dati nella tabella presentano informazioni sulla precisione e sulla scala ad essi associate. Per altre informazioni su precisione e scala, vedere Precisione, scala e lunghezza (Transact-SQL).

Tipo di dati Descrizione
DT_BOOL Valore booleano.
DT_BYTES Valore di dati binari. di lunghezza variabile, fino a un massimo di 8000 byte.
DT_CY Un valore monetario. Questo tipo di dati è un intero con segno a 8 byte con scala 4 e precisione massima di 19 cifre.
DT_DATE Struttura di data che include anno, mese, giorno, ora, minuti, secondi e secondi frazionari. I secondi frazionari hanno una scala fissa di 7 cifre.

Il tipo di dati DT_DATE viene implementato utilizzando un numero a virgola mobile a 8 byte. I giorni vengono rappresentati tramite incrementi costituiti da numeri interi, a partire dal 30 dicembre 1899, e la mezzanotte corrisponde all'ora zero. I valori di ora sono rappresentati dal valore assoluto della parte frazionaria del numero. Poiché tuttavia i valori a virgola mobile non consentono di rappresentare tutti i numeri reali, l'intervallo di date che è possibile rappresentare utilizzando il tipo di dati DT_DATE è limitato.

Il tipo di dati DT_DBTIMESTAMP, invece, è rappresentato da una struttura che internamente include campi distinti per anno, mese, giorno, ore, minuti, secondi e millisecondi. Questo tipo di dati ha limiti maggiori per gli intervalli di date che può rappresentare.
DT_DBDATE Struttura di data che include anno, mese e giorno.
DT_DBTIME Struttura di ora che include ora, minuto e secondo.
DT_DBTIME2 Struttura di ora che include ora, minuti, secondi e secondi frazionari. I secondi frazionari hanno una scala massima di 7 cifre.
DT_DBTIMESTAMP Struttura di timestamp che include anno, mese, giorno, ora, minuti, secondi e secondi frazionari. I secondi frazionari hanno una scala massima di 3 cifre.
DT_DBTIMESTAMP2 Struttura di timestamp che include anno, mese, giorno, ora, minuti, secondi e secondi frazionari. I secondi frazionari hanno una scala massima di 7 cifre.
DT_DBTIMESTAMPOFFSET Struttura di timestamp che include anno, mese, giorno, ora, minuti, secondi e secondi frazionari. I secondi frazionari hanno una scala massima di 7 cifre.

A differenza dei tipi di dati DT_DBTIMESTAMP e DT_DBTIMESTAMP2, il tipo di dati DT_DBTIMESTAMPOFFSET ha un offset del fuso orario. Questo offset specifica il numero di ore e minuti di scostamento dal Tempo coordinato universale (UTC). La differenza di fuso orario viene utilizzata dal sistema per calcolare l'ora locale.

Lo scostamento dal fuso orario deve includere un segno, più o meno, per indicare se viene aggiunto o sottratto all'UTC. Il numero valido per la differenza di ore è compreso tra -14 e +14. Il segno per la differenza di minuti dipende da quello per la differenza di ore:

Se il segno per la differenza di ore è negativo, la differenza di minuti deve essere un valore negativo o zero.

Se il segno per la differenza di ore è positivo, la differenza di minuti deve essere un valore positivo o zero.

Se il segno per la differenza di ore è zero, la differenza di minuti può essere qualsiasi valore da 0,59 negativo a 0,59 positivo.
DT_DECIMAL Valore numerico esatto con scala e precisione fisse. Questo tipo di dati è un intero senza segno a 12 byte, con segno a parte, scala da 0 a 28 e precisione massima 29.
DT_FILETIME Valore a 64 bit che rappresenta il numero di intervalli di 100 nanosecondi trascorsi dal 1 gennaio 1601. I secondi frazionari hanno una scala massima di 3 cifre.
DT_GUID Identificatore univoco globale (GUID, Globally Unique Identifier).
DT_I1 Un numero intero con segno di 1 byte.
DT_I2 Intero con segno a 2 byte.
DT_I4 Intero con segno a 4 byte.
DT_I8 Un intero con segno di otto byte.
DT_NUMERIC Valore numerico esatto con scala e precisione fisse. Questo tipo di dati è un intero senza segno a 16 byte, con segno a parte, scala da 0 a 38 e precisione massima 38.
DT_R4 Valore a virgola mobile con precisione singola.
DT_R8 Un valore a virgola mobile in doppia precisione.
DT_STR Stringa di caratteri ANSI/MBCS con terminazione Null e lunghezza massima di 8000 caratteri. Se un valore di una colonna contiene ulteriori terminatori Null, la stringa verrà troncata in corrispondenza del primo carattere Null.
DT_UI1 Intero senza segno a 1 byte.
DT_UI2 Intero senza segno a 2 byte.
DT_UI4 Intero senza segno a 4 byte.
DT_UI8 Un intero senza segno di otto byte.
DT_WSTR Stringa di caratteri Unicode con terminazione Null e lunghezza massima di 4000 caratteri. Se un valore di una colonna contiene ulteriori terminatori Null, la stringa verrà troncata in corrispondenza del primo carattere Null.
DT_IMAGE Valore binario con dimensioni massime di 2^31-1 (2.147.483.647) byte. .
DT_NTEXT Stringa di caratteri Unicode con lunghezza massima di 2^30–1 (1.073.741.823) caratteri.
DT_TEXT Stringa di caratteri ANSI/MBCS con lunghezza massima di 2^31-1 (2.147.483.647) caratteri.

Conversione di tipi di dati

Se i dati in una colonna non richiedono l'intera larghezza allocata dal tipo di dati di origine, sarà possibile modificare il tipo di dati della colonna. Riducendo il più possibile la larghezza delle singole righe di dati è possibile ottimizzare le prestazioni delle operazioni di trasferimento dei dati, perché minore è la larghezza della riga, più rapido sarà lo spostamento dei dati dall'origine alla destinazione.

Integration Services include un set completo di tipi di dati numerici ed è pertanto possibile scegliere quello più appropriato alle dimensioni dei dati. Se ad esempio i valori di una colonna con tipo di dati DT_UI8 sono sempre numeri interi da 0 a 3000, sarà possibile modificare il tipo di dati in DT_UI2. Analogamente, se una colonna con tipo di dati DT_CY può soddisfare i requisiti di dati del pacchetto anche utilizzando un tipo di dati Integer, sarà possibile modificare il tipo di dati in DT_I4.

Per modificare il tipo di dati di una colonna, procedere nel modo seguente:

Conversione tra stringhe e tipi di dati di data e ora

La tabella seguente elenca i risultati del cast o della conversione tra i tipi di dati di data/ora e le stringhe:

  • Quando si utilizza l'operatore cast o la trasformazione Conversione dati, i dati di tipo data e ora vengono convertiti nel formato stringa corrispondente. Ad esempio, il tipo di data DT_DBTIME sarà convertito in una stringa nel formato "hh:mm:ss".

  • Quando si desidera eseguire la conversione da una stringa a un tipo di dati di data oppure ora, la stringa deve utilizzare il formato stringa che corrisponde al tipo di dati di data oppure ora appropriato. Ad esempio, per convertire correttamente alcune stringhe di data nel tipo di dati DT_DBDATE, è necessario che le stringhe siano nel formato "aaaa-mm-gg".

    Tipo di dati Formato della stringa
    DT_DBDATE aaaa-mm-gg
    DT_FILETIME aaaa-mm-gg hh:mm:ss:fff
    DT_DBTIME hh:mm:ss
    DT_DBTIME2 hh:mm:ss[.fffffff]
    DT_DBTIMESTAMP aaaa-mm-gg hh:mm:ss[.fff]
    DT_DBTIMESTAMP2 aaaa-mm-gg hh:mm:ss[.fffffff]
    DT_DBTIMESTAMPOFFSET aaaa-mm-dd hh:mm:ss[.fffffff] [{+|-} hh:mm]

Nel formato per DT_FILETIME e DT_DBTIMESTAMP, fff è un valore compreso tra 0 e 999 che rappresenta i secondi frazionari.

Nel formato di data per DT_DBTIMESTAMP2, DT_DBTIME2 e DT_DBTIMESTAMPOFFSET, fffffff è un valore compreso tra 0 e 9999999 che rappresenta i secondi frazionari.

Il formato di data per DT_DBTIMESTAMPOFFSET include anche un elemento relativo al fuso orario. Tra l'elemento relativo all'ora e quello relativo al fuso orario è presente uno spazio.

Conversione dei tipi di dati di data e ora

È possibile modificare il tipo di dati di una colonna contenente informazioni di data e ora in modo da estrarre la parte di dati relativa alla data o all'ora. Nella tabella seguente sono illustrati i risultati della conversione da un tipo di dati di data e ora a un altro tipo di dati di data e ora.

Conversione da DT_FILETIME

Conversione di DT_FILETIME in Risultato
DT_FILETIME Nessuna modifica.
DT_DATE Converte il tipo di dati.
DT_DBDATE Rimuove il valore dell'ora.
DT_DBTIME Rimuove il valore della data.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre frazionarie che il tipo di dati DT_DBTIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIME2 Rimozione del valore di data rappresentato dal tipo di dati DT_FILETIME.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIME2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP Converte il tipo di dati.
DT_DBTIMESTAMP2 Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMP2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMPOFFSET Imposta il campo del fuso orario del tipo di dati DT_DBTIMESTAMPOFFSET a zero.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMPOFFSET può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.

Conversione da DT_DATE

Conversione di DT_DATE in Risultato
DT_FILETIME Converte il tipo di dati.
DT_DATE Nessuna modifica.
DT_DBDATE Rimozione del valore di ora rappresentato dal tipo di dati DT_DATA.
DT_DBTIME Rimozione del valore di data rappresentato dal tipo di dati DT_DATE.
DT_DBTIME2 Rimozione del valore di data rappresentato dal tipo di dati DT_DATE.
DT_DBTIMESTAMP Converte il tipo di dati.
DT_DBTIMESTAMP2 Converte il tipo di dati.
DT_DBTIMESTAMPOFFSET Imposta il campo del fuso orario del tipo di dati DT_DBTIMESTAMPOFFSET a zero.

Conversione da DT_DBDATE

Conversione di DT_DBDATE in Risultato
DT_FILETIME Imposta a zero i campi temporali del tipo di dati DT_FILETIME.
DT_DATE Imposta i campi temporali del tipo di dati DT_DATE a zero.
DT_DBDATE Nessuna modifica.
DT_DBTIME Imposta a zero i campi relativi all'ora del tipo di dati DT_DBTIME.
DT_DBTIME2 Imposta a zero i campi temporali del tipo di dati DT_DBTIME2.
DT_DBTIMESTAMP Imposta su zero i campi temporali del tipo di dati DT_DBTIMESTAMP.
DT_DBTIMESTAMP2 Imposta a zero i campi relativi all'ora nel tipo di dati DT_DBTIMESTAMP.
DT_DBTIMESTAMPOFFSET Impostazione dei campi dell'ora e del campo del fuso orario nel tipo di dati DT_DBTIMESTAMPOFFSET su zero.

Conversione da DT_DBTIME

Conversione di DT_DBTIME in Risultato
DT_FILETIME Imposta il campo data del tipo di dati DT_FILETIME sulla data corrente.
DT_DATE Imposta il campo data del tipo di dati DT_DATE sulla data corrente.
DT_DBDATE Impostazione del campo della data nel tipo di dati DT_DBDATE sulla data corrente.
DT_DBTIME Nessuna modifica.
DT_DBTIME2 Converte il tipo di dati.
DT_DBTIMESTAMP Imposta il campo data del tipo di dati DT_DBTIMESTAMP alla data corrente.
DT_DBTIMESTAMP2 Imposta il campo data del tipo di dati DT_DBTIMESTAMP2 sulla data corrente.
DT_DBTIMESTAMPOFFSET Impostazione del campo della data e del campo del fuso orario nel tipo di dati DT_DBTIMESTAMPOFFSET rispettivamente sulla data corrente e su zero.

Conversione da DT_DBTIME2

Conversione di DT_DBTIME2 in Risultato
DT_FILETIME Impostazione del campo della data nel tipo di dati DT_FILETIME sulla data corrente.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_FILETIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sul troncamento dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DATE Imposta il campo data del tipo di dati DT_DATE sulla data corrente.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DATE può contenere. Dopo la rimozione del valore di secondi frazionari, viene generato un report relativo al troncamento dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBDATE Imposta il campo data di tipo di dati DT_DBDATE sulla data corrente.
DT_DBTIME Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIME2 Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIME2 di destinazione può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP Impostare il campo data di tipo DT_DBTIMESTAMP sulla data corrente.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIMESTAMP può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP2 Imposta il campo data del tipo di dati DT_DBTIMESTAMP2 sulla data corrente.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIMESTAMP2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMPOFFSET Impostazione del campo della data e del campo del fuso orario nel tipo di dati DT_DBTIMESTAMPOFFSET rispettivamente sulla data corrente e su zero.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMPOFFSET può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.

Conversione da DT_DBTIMESTAMP

Conversione di DT_DBTIMESTAMP in Risultato
DT_FILETIME Converte il tipo di dati.
DT_DATE Se un valore rappresentato dal tipo di dati DT_DBTIMESTAMP eccede l'intervallo del tipo di dati DT_DATE, viene restituito l'errore DB_E_DATAOVERFLOW. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBDATE Rimuove il valore temporale rappresentato dal tipo di dati DT_DBTIMESTAMP.
DT_DBTIME Rimozione del valore di data rappresentato dal tipo di dati DT_DBTIMESTAMP.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIME2 Rimozione del valore di data rappresentato dal tipo di dati DT_DBTIMESTAMP.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIME2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP Nessuna modifica.
DT_DBTIMESTAMP2 Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMP2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMPOFFSET Imposta il campo del fuso orario del tipo di dati DT_DBTIMESTAMPOFFSET a zero.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMPOFFSET può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.

Conversione da DT_DBTIMESTAMP2

Conversione di DT_DBTIMESTAMP2 in Risultato
DT_FILETIME Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_FILETIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DATE Se un valore rappresentato dal tipo di dati DT_DBTIMESTAMP2 supera l'intervallo del tipo di dati DT_DATE, viene restituito l'errore DB_E_DATAOVERFLOW. Per altre informazioni, vedere Gestione degli errori nei dati.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DATE può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBDATE Rimozione del valore di ora rappresentato dal tipo di dati DT_DBTIMESTAMP2.
DT_DBTIME Rimozione del valore di data rappresentato dal tipo di dati DT_DBTIMESTAMP2.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIME2 Rimozione del valore di data rappresentato dal tipo di dati DT_DBTIMESTAMP2.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIME2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP Se un valore rappresentato dal tipo di dati DT_DBTIMESTAMP2 eccede l'intervallo del tipo di dati DT_DBTIMESTAMP, viene restituito l'errore DB_E_DATAOVERFLOW.

DT_DBTIMESTAMP2 viene mappato a un tipo di dati SQL Server, datetime2, con un intervallo che va dal 1 gennaio 1 d.C. al 31 dicembre 9999. DT_DBTIMESTAMP viene mappato al tipo di dati datetime di SQL Server, con un intervallo più ristretto, compreso tra il 1° gennaio 1753 e il 31 dicembre 9999.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIMESTAMP può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati.

Per altre informazioni sugli errori, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP2 Rimuove il valore delle frazioni di secondo quando la relativa scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIMESTAMP2 di destinazione può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMPOFFSET Imposta il campo del fuso orario del tipo di dati DT_DBTIMESTAMPOFFSET a zero.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMPOFFSET può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.

Conversione da DT_DBTIMESTAMPOFFSET

Conversione di DT_DBTIMESTAMPOFFSET in Risultato
DT_FILETIME Modifica il valore dell'ora rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET nell'ora universale coordinata (UTC).

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_FILETIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DATE Modifica il valore temporale rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET in UTC.

Se un valore rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET supera l'intervallo del tipo di dati DT_DATE, restituisce l'errore DB_E_DATAOVERFLOW.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DATE può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati.

Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBDATE Modifica il valore dell'ora rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET in UTC, operazione che può influire sul valore della data. Il valore temporale viene quindi rimosso.
DT_DBTIME Modifica il valore dell'ora rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET in UTC.

Rimuove il valore di dati rappresentato dal tipo di dati DT_DBTIMESTAMPEOFFSET.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIME può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIME2 Modifica il valore dell'ora rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET in UTC.

Rimuove il valore di data rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIME2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP Modifica il valore temporale rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET in UTC.

Se un valore rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET eccede l'intervallo del tipo di dati DT_DBTIMESTAMP, viene restituito l'errore DB_E_DATAOVERFLOW.

Rimuove il valore delle frazioni di secondo quando la scala è maggiore del numero di cifre delle frazioni di secondo che il tipo di dati DT_DBTIMESTAMP può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati.

Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMP2 Converte in UTC il valore temporale rappresentato dal tipo di dati DT_DBTIMESTAMPOFFSET.

Rimuove il valore dei secondi frazionari quando la scala è maggiore del numero di cifre dei secondi frazionari che il tipo di dati DT_DBTIMESTAMP2 può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.
DT_DBTIMESTAMPOFFSET Rimuove il valore dei secondi frazionari quando la relativa scala è maggiore del numero di cifre decimali dei secondi frazionari che il tipo di dati DT_DBTIMESTAMPOFFSET di destinazione può contenere. Dopo la rimozione del valore delle frazioni di secondo, viene generato un report sulla troncatura dei dati. Per altre informazioni, vedere Gestione degli errori nei dati.

Corrispondenza tra i tipi di dati di Integration Services e i tipi di dati del database

Nella tabella seguente sono incluse informazioni sul mapping tra i tipi di dati usati in alcuni database e i tipi di dati di Integration Services. Questi mapping sono riepilogati nei file di mapping usati dall'Importazione/Esportazione guidata di SQL Server per l'importazione dei dati da queste origini. Per altre informazioni su questi file di mapping, vedere Importazione/Esportazione guidata SQL Server.

Importante

Questi mapping non rappresentano una rigida corrispondenza, ma offrono solo informazioni generali. In alcuni casi potrebbe essere necessario utilizzare un tipo di dati diverso rispetto a quello indicato nella tabella.

Nota

I tipi di dati SQL Server possono essere utilizzati per stimare le dimensioni dei tipi di dati corrispondenti di data e ora di Integration Services.

Tipo di dati SQL Server

(SQLOLEDB, SQLNCLI10)
SQL Server (SqlClient) Jet Oracle

(OracleClient)
DB2

(DB2OLEDB)
DB2

(IBMDADB2)
DT_BOOL bit bit Bit
DT_BYTES binario, varbinario, timestamp binario, varbinario, timestamp BigBinary, VarBinary RAW
DT_CY smallmoney, money valuta piccola, valuta Valuta
DT_DATE
DT_DBDATE date (Transact-SQL) date (Transact-SQL) data data data
DT_DBTIME timestamp tempo tempo
DT_DBTIME2 Tempo (Transact-SQL)(p) time (Transact-SQL) (p)
DT_DBTIMESTAMP datetime (Transact-SQL), smalldatetime (Transact-SQL) data e ora (Transact-SQL), data e ora ridotte (Transact-SQL) Data e ora TIMESTAMP, DATA, INTERVALLO ORA, MARCATEMPO, DATA ORA, MARCATEMPO, DATA
DT_DBTIMESTAMP2 datetime2 (Transact-SQL) datetime2 (Transact-SQL) timestamp timestamp timestamp
DT_DBTIMESTAMPOFFSET datetimeoffset (Transact-SQL)(p) datetimeoffset (Transact-SQL) (p) timestampoffset timestamp,

varchar
marca temporale,

varchar
DT_DECIMAL
DT_FILETIME
DT_GUID uniqueidentifier uniqueidentifier GUID
DT_I1
DT_I2 smallint smallint Breve SMALLINT SMALLINT
DT_I4 int int Lungo INTEGER INTEGER
DT_I8 bigint bigint BIGINT BIGINT
DT_NUMERIC decimale, numerico decimale, numerico Decimale NUMERO, INT DECIMALE, NUMERICO DECIMALE, NUMERICO
DT_R4 reale reale Singola REAL REAL
DT_R8 virgola mobile virgola mobile Doppio FLOAT, REAL GALLEGGIA, DOPPIO GALLEGGIA, DOPPIO
DT_STR Char, Varchar VarChar char, varchar char, varchar
DT_UI1 tinyint tinyint Byte
DT_UI2
DT_UI4
DT_UI8
DT_WSTR nchar, nvarchar, sql_variant, XML char, varchar, nchar, nvarchar, sql_variant, xml LongText CHAR, ROWID, VARCHAR2, NVARCHAR2, NCHAR GRAFICO, VARGRAPHIC GRAFICO, VARGRAPHIC
DT_IMAGE immagine immagine LongBinary LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, definito dall'utente CHAR () PER I DATI BIT, VARCHAR () PER I DATI BIT CHAR () PER DATI BIT, VARCHAR () PER DATI BIT, BLOB
DT_NTEXT ntext testo, ntext LONG, CLOB, NCLOB, NVARCHAR, TEXT VARCHAR LUNGO, NCHAR, NVARCHAR, TESTO LONG VARCHAR, DBCLOB, NCHAR, NVARCHAR, TEXT
DT_TEXT Testo VARCHAR LONG PER DATI BINARI LONG VARCHAR PER DATI BINARI, CLOB

Per informazioni sul mapping di tipi di dati nel flusso di dati, vedere Utilizzo di tipi di dati nel flusso di dati.