暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase8s ESQL/C 的datetime和interval使用的宏

Dr.王 2022-01-21
496

decimal.h中还定义了一些与datetimeinterval相关的宏。

修饰符是一个2-字节的整数, 第一个字节高四位为起始字段,第一个字节的低四位时终止字段。

第二个字节为长度。

宏的名称

描述

TU_YEAR

时间单位中的年修饰符

TU_MONTH

时间单位中的月修饰符

TU_DAY

时间单位中的日修饰符

TU_HOUR

时间单位中的时修饰符

TU_MINUTE

时间单位中的分修饰符

TU_SECOND

时间单位中的秒修饰符

TU_FRAC

时间单位中的微秒修饰符

TU_Fn

datetime的最后一个成员FRACTION(n), n的取值范围为1-5.

TU_START(p)

从修饰符中取得起始字段的值。

TU_END(p)

从修饰符中取得终止字段的值。

TU_LEN(p)

返回修饰符的长度。

TU_FLEN(f)

返回interval结构的起始字段的长度。

TU_ENCODE(p, f, t)

创建修饰符,根据起始字段f,长度字段p和终止字段t

TU_DTENCODE(f,t)

创建datetime修饰符,根据起始字段f和终止字段t, 内部调用TU_ENCODE(p, f, t)实现。

TU_IENCODE(p, f, t)

创建interval修饰符,根据起始字段f,长度字段p和终止字段t,内部调用TU_ENCODE(p, f, t)实现。

 

如果在程序中,声明interval变量时, 没有指定修饰符。需要调用interval的宏来设定interval的修饰符,请看下面的例子:

/* declare a host variable without a qualifier */

EXEC SQL BEGIN DECLARE SECTION;

  interval inv1;

EXEC SQL END DECLARE SECTION;

 

/* set the interval qualifer for the host variable */

inv1.in_qual = TU_IENCODE(2, TU_DAY, TU_SECOND);

 

/* assign values to the host variable */

incvasc(“5 2:10:02”, &inv1);

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论