0

我使用 sqlite3 C/C++ API 使用 SELECT 查询从表中检索行。我没有看到任何 sqlite3_column_timestamp() 在 sqlite3_step() 之后检索时间戳列值。如何获取时间戳值?

4

2 回答 2

1

列/值访问器将仅具有与它们直接支持的数据类型相对应的类型(NULL, INTEGER, REAL, TEXT, BLOB)。

您将使用TEXT访问权限来获取/设置日期的列值。

它们提供的SQL中有一些帮助函数,可让您在查询中处理它们。

我不熟悉 SQLite Manager,但我认为它只报告声明表的数据类型。

在解析CREATE语句时,sqlite 了解许多支持良好的数据类型的意图,并自动将它们映射到适合其内部存储结构的内容。 VARCHAR例如,将映射到TEXT。我假设该列已声明DATETIME并且 sqlite 只是在内部将其映射到TEXT.

于 2012-10-11T19:09:26.657 回答
1

SQLite 没有特殊的时间戳数据类型。

当您想使用 SQLite 的任何日期和时间函数时,您必须以它们支持的格式之一存储时间戳,即类似YYYY-MM-DD HH:MM:SSor的字符串HH:MM:SS、朱利安日期数字或 Unix 时间戳数字。

您可以将表列类型声明为DATETIME,但 SQLite 将忽略该类型;SQLite 总是允许将任何类型的值放在任何列中。这样的声明仅作为文档有用。

于 2012-10-11T19:37:53.503 回答