更新日期:2024年09月11日
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 671 -
dtaddinv() 函数将 interval 值加到 datetime 值。结果为 datetime 值。
语法
mint dtaddinv(dt, inv, res)
dtime_t *dt;
intrvl_t *inv;
dtime_t *res;
dt
指向初始化的 datetime 主变量的指针。
inv
指向初始化的 interval 主变量的指针。
res
指向包含结果的 datetime 主变量的指针。
用法
dtaddinv() 函数将 inv 中的interval 值加至 dt 中的 datetime 值,并将 datetime 值
存储在 res 中。此结果继承 dt 的限定符。
该 interval 值必须在 year to month 或 day to fraction(5) 范围中。
datetime 值必须包括在 interval 值中出现的所有字段。
如果您未初始化变量 dt 和 inv,则该函数可能返回不可预计的结果。
返回代码
0
加法成功。
<0
加法错误。
示例
demo 目录在 dtaddinv.ec 文件中包含此样例程序。
/*
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 672 -
* dtaddinv.ec *
The following program adds an INTERVAL value to a DATETIME value and displays the
result.
*/
#include
EXEC SQL include datetime;
main()
{
char out_str[16];
EXEC SQL BEGIN DECLARE SECTION;
datetime year to minute dt_var, result;
interval day to minute intvl;
EXEC SQL END DECLARE SECTION;
printf("DTADDINV Sample ESQL Program running.\n\n");
printf("datetime year to minute value=2006-11-28 11:40\n");
dtcvasc("2006-11-28 11:40", &dt_var);
printf("interval day to minute value = 50 10:20\n");
incvasc("50 10:20", &intvl);
dtaddinv(&dt_var, &intvl, &result);
/* Convert to ASCII for displaying */
dttoasc(&result, out_str);
printf("---------------------------------------\n");
printf("Sum=%s\n", out_str);
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 673 -
printf("\nDTADDINV Sample Program over.\n\n");
}
输出
DTADDINV Sample ESQL Program running.
datetime year to minute value=2006-11-28 11:40
interval day to minute value = 50 10:20
-----------------------------------------------
Sum=2007-01-17 22:00
DTADDINV Sample Program over.