invmuldbl() 函数将 interval 值乘以数值的值。
语法
mint invmuldbl(iv, num, ov)
intrvl_t *iv;
double num;
intrvl_t *ov;
iv
指向要相乘的 interval 变量的指针。
num
数值的 double 值。
ov
指向带有有效的限定符的 interval 变量的指针。
用法
invmuldbl() 函数将 iv 中的 interval 值乘以 num,并将结果存储在 ov 中。num 中
的值可正可负。
输入和输出限定符都必须属于同一 interval 类:
或者 year to month 类,
或者 day to
fraction(5) 类。
如果 ov 的限定符不同于 iv 的限定符
(但属于同于类)
,
则 invmuldbl() 扩
展该结果(如 invextend() 函数定义的那样)。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 845 -
返回代码
0
乘法成功。
<0
乘法失败。
-1200
数值的值(大小)太大。
-1201
数值的值(大小)太小。
-1266
interval 值与该操作不兼容。
-1268
参数包含无效的 interval 限定符。
示例
demo 目录的文件 invmuldbl.ec 中包含此样例程序。
该示例说明如何将 interval 值与
数值的值相乘。第二个相乘说明当输入与输出限定符不同时 interval 乘法的结果。
/*
* invmuldbl.ec *
The following program multiplies an INTERVAL type variable by a numeric value and
stores the result in an INTERVAL variable. The operation is done twice, using INTERVALs with
different qualifiers to store the result.
*/
#include
EXEC SQL include datetime;
main()
{
char out_str[16];
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 846 -
EXEC SQL BEGIN DECLARE SECTION;
interval hour to minute hrtomin1;
interval hour to minute hrtomin2;
interval day to second daytosec;
EXEC SQL END DECLARE SECTION;
printf("INVMULDBL Sample ESQL Program running.\n\n");
/* input is 25 hours, and 49 minutes */
printf("Interval (hour to minute) = 25:49\n");
incvasc("25:49", &hrtomin1);
printf("Multiplier (double) = 3.0\n");
printf("--------------------------------------\n");
/* Convert the internal format to ascii for displaying */
invmuldbl(&hrtomin1, (double) 3.0, &hrtomin2);
intoasc(&hrtomin2, out_str);
printf("Product #1 (hour to minute)= '%s'\n", out_str);
/* Convert the internal format to ascii for displaying */
invmuldbl(&hrtomin1, (double) 3.0, &daytosec);
intoasc(&daytosec, out_str);
printf("Product #2 (day to second)='%s'\n", out_str);
printf("\nINVMULDBL Sample Program over.\n\n");
}
输出
INVMULDBL Sample ESQL Program running.
Interval (hour to minute) = 25:49
Multiplier (double) = 3.0
---------------------------------------------
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 847 -
Product #1 (hour to minute) = ' 77:27'
Product #2 (day to second) = ' 3 05:27:00'
INVMULDBL Sample Program over.