dttoasc() 函数将 datetime 变量的字段值转换为符合 ANSI SQL 标准的 ASCII
字符串。
语法
mint dttoasc(dtvalue, outbuf)
dtime_t *dtvalue;
char *outbuf;
dtvalue
指向要转换的初始化了的 datetime 变量的指针。
outbuf
指向为 dtvalue 中的值接收 ANSI 标准 DATETIME 字符串的缓冲区的指针。
用法
dttoasc() 函数将 datetime 变量中的字段的数字转换为它们等同的字符,并将它们复
制至 outbuf 字符串,在它们之间带有定界符(连字符、空格、冒号或句号)。您必须以您
想要该字符串拥有的限定符来初始化 dtvalue 中的 datetime 变量。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 691 -
该字符串不包括 SQL 语句用于定界 DATETIME 文字的限定符或圆括号。 outbuf
字符串符合 ANSI SQL 标准。
它包括针对每一定界符的一个字符,
加上字段,
其大小如下:
字段
字段大小
Year
4 位
DATETIME 的部分
如精度所指定
所有其他字段
2 位
带有 year to fraction(5) 限定符的 datetime 值产生最大的输出长度。等同的字符串
包含 19 位、6 定界符以及空终止符,总计 26 字节:
YYYY-MM-DD HH:MM:SS.FFFFF
如果您未初始化 datetime 变量的限定符,则 dttoasc() 函数返回不可预料的值,但此
值不超过 26 字节。
返回代码
0
转换成功。
<0
转换失败。
示例
demo 目录在文件 dttoasc.ec 中包含此样例程序。
/*
* dttoasc.ec *
The following program illustrates the conversion of a datetime value into an ASCII string
in ANSI SQL format
*/
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 692 -
#include
EXEC SQL include datetime;
main()
{
char out_str[16];
EXEC SQL BEGIN DECLARE SECTION;
datetime year to hour dt1;
EXEC SQL END DECLARE SECTION;
printf("DTTOASC Sample ESQL Program running.\n\n");
/* Initialize dt1 */
dtcurrent(&dt1);
/* Convert the internal format to ascii for displaying */
dttoasc(&dt1, out_str);
/* Print it out*/
printf("\tToday's datetime (year to hour)value is %s\n", out_str);
printf("\nDTTOASC Sample Program over.\n\n");
}
输出
DTTOASC Sample ESQL Program running.
Today's datetime (year to hour) value is 2007-09-19 08
DTTOASC Sample Program over.
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 693 -