如何在 C api 中从 KDB+ 访问日期和 varbinary
How to access date and varbinary from KDB+ in C api
无法从 KDB 数据库获取 C 程序中的日期和 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”
无法从 KDB 数据库获取 C 程序中的日期和 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”