首页 > 解决方案 > 带有c绑定的sqlite中的无符号64位值

问题描述

我正在尝试通过 c 绑定在 sqlite 中存储和检索无符号的 64 位整数值。

例如 18446744073709551615(小于 2 的 64 次方) 我似乎已经设法将这个值存储在数据库中。当我在命令行上运行 sqlite3 并选择列时,我得到 1.84467440737096e+19

我遇到的问题是使用 c 绑定检索值。我打电话给 sqlite3_column_int64。此函数返回一个带符号的 sqlite3_int64 值。当我调用该函数时,它返回 9223372036854775807,这是有符号 64 位整数的最大大小(小于 2 的 63 次方)似乎没有 sqlite3_column_uint64 函数。

有任何想法吗?

标签: sqlite

解决方案


无符号 64 位整数不能直接由SQLite 的任何数据类型表示。

您必须将它们存储为文本或 blob。在这两种情况下,数据库都不能对它们进行计算。


推荐阅读