我使用 sqlite3 C/C++ API 使用 SELECT 查询从表中检索行。我没有看到任何 sqlite3_column_timestamp() 在 sqlite3_step() 之后检索时间戳列值。如何获取时间戳值?
问问题
1975 次
2 回答
1
列/值访问器将仅具有与它们直接支持的数据类型相对应的类型(NULL
, INTEGER
, REAL
, TEXT
, BLOB
)。
您将使用TEXT
访问权限来获取/设置日期的列值。
我不熟悉 SQLite Manager,但我认为它只报告声明表的数据类型。
在解析CREATE
语句时,sqlite 了解许多支持良好的数据类型的意图,并自动将它们映射到适合其内部存储结构的内容。 VARCHAR
例如,将映射到TEXT
。我假设该列已声明DATETIME
并且 sqlite 只是在内部将其映射到TEXT
.
于 2012-10-11T19:09:26.657 回答
1
SQLite 没有特殊的时间戳数据类型。
当您想使用 SQLite 的任何日期和时间函数时,您必须以它们支持的格式之一存储时间戳,即类似YYYY-MM-DD HH:MM:SS
or的字符串HH:MM:SS
、朱利安日期数字或 Unix 时间戳数字。
您可以将表列类型声明为DATETIME
,但 SQLite 将忽略该类型;SQLite 总是允许将任何类型的值放在任何列中。这样的声明仅作为文档有用。
于 2012-10-11T19:37:53.503 回答