10 進数字

10 進数データ型と数値データ型の 10 進数は、小数点の右側の最大桁数、またはデータの小数点以下桁数として定義されます。 おおよその浮動小数点数列またはパラメーターの場合、小数点以下桁数が固定されていないため、小数点以下桁数は未定義です。 秒の部分を含む datetime または interval データの場合、10 進数は、データの秒部分の小数点の右側の桁数として定義されます。

SQL_DECIMALデータ型とSQL_NUMERICデータ型の場合、最大スケールは通常、最大有効桁数と同じです。 ただし、一部のデータ ソースでは、最大スケールに個別の制限が適用されます。 データ型に対して許可される最小スケールと最大スケールを決定するために、アプリケーションは SQLGetTypeInfo を呼び出します。

簡潔な SQL データ型ごとに定義されている 10 進数を次の表に示します。

SQL 型 数字
すべての文字型とバイナリ型 [a] 該当なし
SQL_DECIMAL
SQL_NUMERIC
小数点の右側に定義された桁数。 たとえば、NUMERIC(10,3) として定義された列のスケールは 3 です。 指数表記を使用せずに非常に大きな数値の格納をサポートするには、負の数を指定できます。たとえば、スケールが -3 の "12000" を "12" として格納できます。
SQL_DECIMAL および SQL_NUMERIC[a] 以外のすべての正確な数値型 0
すべてのおおよそのデータ型 [a] 該当なし
SQL_TYPE_DATE、秒のないすべての間隔の種類 [a] 該当なし
SQL_TYPE_DATEを除くすべての datetime 型と、秒コンポーネントを持つすべての間隔型 値の秒部分の小数点の右側の桁数 (秒の小数部)。 この数値を負の値にすることはできません。
SQL_GUID 該当なし

[a] SQLBindParameterDecimalDigits 引数は、このデータ型では無視されます。

10 進数に対して返される値は、1 つの記述子フィールドの値に対応していません。 値は、次の表に示すように、データ型に応じて、SQL_DESC_SCALE または SQL_DESC_PRECISION フィールドから取得できます。

SQL 型 に対応する記述子フィールド

すべての文字型とバイナリ型 該当なし
すべての正確な数値型 SCALE
SQL_BIT 該当なし
すべての近似数値型 該当なし
すべての datetime 型 PRECISION
秒コンポーネントを含むすべての間隔の種類 PRECISION
秒コンポーネントのないすべての間隔の種類 N/A