間隔資料類型有效位數

間隔資料類型的有效位數包括間隔前置精確度、間隔有效位數和秒精確度。

間隔的前置欄位是帶正負號的數值。 前置欄位的最大位數取決於稱為 間隔前置精確度的數量, 這是資料類型宣告的一部分。 例如,宣告:INTERVAL HOUR(5) TO MINUTE 的間隔前置精確度為 5;HOUR 欄位可以從 -99999 到 99999 取得值。 間隔前置精確度包含在描述元記錄的SQL_DESC_DATETIME_INTERVAL_PRECISION欄位中。

間隔資料類型所組成的欄位清單稱為 間隔有效位數 。 這不是數值,因為「有效位數」一詞可能暗示。 例如,INTERVAL DAY TO SECOND 類型的間隔有效位數是清單 DAY、HOUR、MINUTE、SECOND。 沒有保留此值的描述元欄位;間隔有效位數一律可由間隔資料類型決定。

具有 SECOND 欄位的任何間隔資料類型都有 秒有效位數 。 這是秒值小數部分所允許的十進位數。 這與其他資料類型不同,其中 precision 表示小數點之前的位數。 interval 資料類型的秒精確度是小數點之後的位數。 例如,如果秒數精確度設定為 6,則分數位段中的數位123456會解譯為 .123456,而數位 1230 會解譯為 .001230。 對於其他資料類型,這稱為縮放比例。 間隔秒有效位數包含在描述元SQL_DESC_PRECISION欄位中。 如果 SQL 間隔值的小數秒陣列件精確度大於 C 間隔結構中可保留的值,則驅動程式定義 SQL 間隔中的小數秒值在轉換成 C 間隔結構時會四捨五入或截斷。

當 [SQL_DESC_CONCISE_TYPE] 欄位設定為間隔資料類型時,SQL_DESC_TYPE欄位會設定為 [SQL_INTERVAL],而 [SQL_DESC_DATETIME_INTERVAL_CODE] 會設定為間隔資料類型的程式碼。 SQL_DESC_DATETIME_INTERVAL_PRECISION欄位會自動設定為預設間隔前置有效位數 2,且SQL_DESC_PRECISION欄位會自動設定為預設間隔秒精確度 6。 如果其中一個值不合適,應用程式應該透過對 SQLSetDescField 的呼叫 明確地設定描述元欄位。