Cifre decimali

Le cifre decimali dei tipi di dati decimali e numerici sono definite come il numero massimo di cifre a destra del separatore decimale o la scala dei dati. Per le colonne o i parametri approssimativi di numeri a virgola mobile, la scala non è definita perché il numero di cifre a destra del separatore decimale non è fisso. Per i dati datetime o interval che contengono un componente secondi, le cifre decimali vengono definite come numero di cifre a destra del separatore decimale nel componente secondi dei dati.

Per i tipi di dati SQL_DECIMAL e SQL_NUMERIC, la scala massima è in genere uguale alla precisione massima. Tuttavia, alcune origini dati impongono un limite separato sulla scala massima. Per determinare le scale minime e massime consentite per un tipo di dati, un'applicazione chiama SQLGetTypeInfo.

Le cifre decimali definite per ogni tipo di dati SQL conciso sono illustrate nella tabella seguente.

Tipo SQL Cifre decimali
Tutti i tipi di carattere e binari[a] N/D
SQL_DECIMAL
SQL_NUMERIC
Numero definito di cifre a destra del separatore decimale. Ad esempio, la scala di una colonna definita come NUMERIC(10,3) è 3. Questo può essere un numero negativo per supportare l'archiviazione di numeri molto grandi senza usare la notazione esponenziale; Ad esempio, "12000" può essere archiviato come "12" con una scala di -3.
Tutti i tipi numerici esatti diversi da SQL_DECIMAL e SQL_NUMERIC[a] 0
Tutti i tipi di dati approssimativi[a] N/D
SQL_TYPE_DATE e tutti i tipi di intervallo senza componente secondi[a] N/D
Tutti i tipi datetime tranne SQL_TYPE_DATE e tutti i tipi di intervallo con un componente secondi Numero di cifre a destra del separatore decimale nella parte dei secondi del valore (secondi frazionari). Questo numero non può essere negativo.
SQL_GUID N/D

[a] L'argomento DecimalDigits di SQLBindParameter viene ignorato per questo tipo di dati.

I valori restituiti per le cifre decimali non corrispondono ai valori in un campo descrittore. I valori possono provenire dal SQL_DESC_SCALE o dal campo SQL_DESC_PRECISION, a seconda del tipo di dati, come illustrato nella tabella seguente.

Tipo SQL Campo descrittore corrispondente a

cifre decimali
Tutti i tipi di caratteri e binari N/D
Tutti i tipi numerici esatti SCALE
SQL_BIT N/D
Tutti i tipi numerici approssimativi N/D
Tutti i tipi datetime PRECISION
Tutti i tipi di intervallo con un componente secondi PRECISION
Tutti i tipi di intervallo senza componente secondi n/d