Share via


十進位數

十進位和數值資料類型的十進位數 會定義為小數點右邊的最大位數,或資料小數位數。 對於近似浮點數資料行或參數,小數位數未定義,因為小數點右邊的數位數目未固定。 對於包含秒元件的 datetime 或 interval 資料,小數位數會定義為數據秒陣列件中小數點右邊的數位數。

針對SQL_DECIMAL和SQL_NUMERIC資料類型,最大小數位數通常與最大精確度相同。 不過,某些資料來源會對縮放比例上限施加個別的限制。 若要判斷資料類型允許的最小和最大縮放比例,應用程式會呼叫 SQLGetTypeInfo

下表顯示針對每個精簡 SQL 資料類型定義的十進位數。

SQL 類型 十進位數
所有字元和二進位類型[a] n/a
SQL_DECIMAL
SQL_NUMERIC
小數點右邊的已定義位數。 例如,定義為 NUMERIC(10,3) 的資料行小數位數為 3。 這可以是負數,以支援非常大量的數位的儲存,而不使用指數標記法;例如,「12000」 可以儲存為 「12」,小數位數為 -3。
SQL_DECIMAL 和 SQL_NUMERIC[a] 以外的所有確切數數值型別 0
所有近似資料類型[a] n/a
SQL_TYPE_DATE,且不含秒元件的所有間隔類型[a] n/a
SQL_TYPE_DATE以外的所有日期時間類型,以及具有秒元件的所有間隔類型 值秒數中小數點右邊的數位數(小數秒數)。 這個數位不可以是負數。
SQL_GUID n/a

[a] 此資料類型會忽略 SQLBindParameter DecimalDigits 引數。

針對小數位數傳回的值不會對應至任何一個描述元欄位中的值。 值可能來自 SQL_DESC_SCALE 或 SQL_DESC_PRECISION 欄位,視資料類型而定,如下表所示。

SQL 類型 對應至 的描述項欄位

十進位數
所有字元和二進位類型 n/a
所有確切的數數值型別 SCALE
SQL_BIT n/a
所有近似數數值型別 n/a
所有日期時間類型 PRECISION
具有秒元件的所有間隔類型 PRECISION
不含秒元件的所有間隔類型 n/a