间隔数据类型精度

间隔数据类型的精度包括间隔前导精度、间隔精度和秒精度。

间隔的前导字段是带符号的数值。 前导字段的最大位数由称为 间隔前导精度 的数量决定,该数量是数据类型声明的一部分。 例如,声明:INTERVAL HOUR (5) TO MINUTE 的间隔前导精度为 5;HOUR 字段可以采用 -99999 到 99999 的值。 间隔前导精度包含在描述符记录的SQL_DESC_DATETIME_INTERVAL_PRECISION字段中。

间隔数据类型所构成的字段列表称为 间隔精度。 它不是数值,正如术语“精度”可能暗示的那样。 例如,类型 INTERVAL DAY TO SECOND 的间隔精度是列表 DAY、HOUR、MINUTE、SECOND。 没有包含此值的描述符字段;间隔精度始终可以由间隔数据类型确定。

具有 SECOND 字段的任何 interval 数据类型都具有 秒精度。 这是秒值的小数部分允许的小数位数。 这与其他数据类型不同,其中精度指示小数点之前的位数。 间隔数据类型的秒精度是小数点后的位数。 例如,如果秒精度设置为 6,则分数字段中123456的数字将解释为 .123456,数字 1230 将解释为 .001230。 对于其他数据类型,这称为“缩放”。 间隔秒精度包含在描述符的SQL_DESC_PRECISION字段中。 如果 SQL 间隔值的秒小数部分的精度大于 C 间隔结构中可以保留的精度,则当转换为 C 间隔结构时,SQL 间隔中的秒小数部分值是舍入还是截断,都是由驱动程序定义的。

当SQL_DESC_CONCISE_TYPE字段设置为 interval 数据类型时,SQL_DESC_TYPE字段设置为“SQL_INTERVAL”,SQL_DESC_DATETIME_INTERVAL_CODE设置为间隔数据类型的代码。 SQL_DESC_DATETIME_INTERVAL_PRECISION字段自动设置为默认间隔前导精度 2,SQL_DESC_PRECISION字段自动设置为默认间隔秒精度 6。 如果这些值中的任何一个都不合适,应用程序应通过调用 SQLSetDescField 显式设置描述符字段。