c - 如何在 C api 中从 KDB+ 访问日期和 varbinary

标签 c kdb

在 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”

关于c - 如何在 C api 中从 KDB+ 访问日期和 varbinary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865089/

相关文章:

java - 如何在 Java 中重新建立丢失的 KDB 连接

csv - kdb Q 列名称带空格

kdb - TorQ:.loader.loadallfiles 和引用完整性导致“强制转换错误”

c - 文件指针指向的地址是什么?

c - 如何读取变量 *(int*)x?

c - 为什么分配单字节时地址不连续?

c - 在函数中打开二进制文件?请参阅代码 :

c - 这个文件不应该以汇编语言开头吗

json - 将json字符串解析到kdb表的通用函数?

list - KDB:如何从列表中做出(尽可能)均匀分布的选择?