Dígitos decimais

Os dígitos decimais de tipos de dados decimal e numéricos são definidos como o número máximo de dígitos à direita do ponto decimal ou a escala dos dados. Para colunas ou parâmetros de número de ponto flutuante aproximados, a escala é indefinida porque o número de dígitos à direita do ponto decimal não é fixo. Para dados datetime ou interval que contêm um componente de segundos, os dígitos decimais são definidos como o número de dígitos à direita do ponto decimal no componente de segundos dos dados.

Para os tipos de dados SQL_DECIMAL e SQL_NUMERIC, a escala máxima geralmente é a mesma que a precisão máxima. No entanto, algumas fontes de dados impõem um limite separado na escala máxima. Para determinar as escalas mínimas e máximas permitidas para um tipo de dados, um aplicativo chama SQLGetTypeInfo.

Os dígitos decimais definidos para cada tipo de dados SQL conciso são mostrados na tabela a seguir.

Tipo SQL Dígitos decimais
Todos os tipos de caracteres e binários[a] n/d
SQL_DECIMAL
SQL_NUMERIC
O número definido de dígitos à direita do ponto decimal. Por exemplo, a escala de uma coluna definida como NUMERIC(10,3) é 3. Esse pode ser um número negativo para dar suporte ao armazenamento de números muito grandes sem usar notação exponencial; por exemplo, "12000" pode ser armazenado como "12" com uma escala de -3.
Todos os tipos numéricos exatos que não sejam SQL_DECIMAL e SQL_NUMERIC[a] 0
Todos os tipos de dados aproximados[a] n/d
SQL_TYPE_DATE e todos os tipos de intervalo sem componentes de segundos[a] n/d
Todos os tipos de datetime, exceto SQL_TYPE_DATE e todos os tipos de intervalo com um componente de segundos O número de dígitos à direita do ponto decimal na parte de segundos do valor (segundos fracionários). Esse número não pode ser negativo.
SQL_GUID n/d

[a] O argumento DecimalDigits de SQLBindParameter é ignorado para esse tipo de dados.

Os valores retornados para os dígitos decimais não correspondem aos valores em nenhum campo de descritor. Os valores podem vir do campo SQL_DESC_SCALE ou SQL_DESC_PRECISION, dependendo do tipo de dados, conforme mostrado na tabela a seguir.

Tipo SQL Campo descritor correspondente a

dígitos decimais
Todos os tipos de caracteres e binários n/d
Todos os tipos numéricos exatos SCALE
SQL_BIT n/d
Todos os tipos numéricos aproximados n/d
Todos os tipos de datetime PRECISION
Todos os tipos de intervalo com um componente de segundos PRECISION
Todos os tipos de intervalo sem componente de segundos N/D