2012-10-11 42 views
0

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

+0

SQLite没有时间戳记数据类型,因此使用存储值时使用的任何类型(数字或文本/字符串)。 – Mat

回答

1

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

当你想使用任何的SQLite的date and time functions的,您可以选择存储时间戳在formats supported by them之一,即像YYYY-MM-DD HH:MM:SSHH:MM:SS,Julian日期号,或者Unix时间戳数字的字符串。

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

1

列/值存取器将仅具有对应于data types they support directlyNULLINTEGERREALTEXTBLOB)类型。

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

他们提供了一些helper functions within SQL,让您在查询中处理它们。

我不熟悉SQLite管理器,但我会假设它只报告表声明的数据类型。

当分析CREATE语句时,sqlite理解许多受到良好支持的数据类型的意图,并自动将它们映射到适合其内部存储结构的内容。例如,VARCHAR将被映射到TEXT。我认为该专栏被宣布为DATETIME,而sqlite内部将其映射到TEXT

+0

应该使用哪种数据类型来存储时间戳?我在SQLite Manager中看到了一个DATETIME类型。 –