十進位數
十進位和數值資料類型的十進位數 會定義為小數點右邊的最大位數,或資料小數位數。 對於近似浮點數資料行或參數,小數位數未定義,因為小數點右邊的數位數目未固定。 對於包含秒元件的 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 |