在 C 程序中从 KDB 数据库获取日期和 varbinary 值时遇到问题。 K (3.2t 2004-06-03)
types:
date = `date
col1 = `varbinary
查询:
select date, col1 from table1 where date='1993-01-04'
K shell 的结果:
.((`date
,-15337
.,(`T;`date;))
(`col1
,"000 00010"
))
C 中的结果:
int date = KI(KK(kData)[0])[i];//date=-15337.
col1=KI(KK(kData)[1])[i]; //col1=8394164
问题:如何将 -15337 转换为“1993-01-04”?这是在 kdb 纪元之前...问题:如何从结果中获取实际的 varbinary“000 00010”?
非常感谢。
我找到了答案,感谢 user3629249 的回复
访问日期使用dj函数
cout << dj(KI(KK(kData)[0])[i]);
产生 19930104
访问 var binary 作为列表。
K col1Data = KK(KK(kData)[6])[i];
int col1_size = col1Data->n;
for( int j=0; j<col1_size; j++ )
cout << KC(col1Data)[j];
产生“000 00010”
我是一名优秀的程序员,十分优秀!