2012-10-11 40 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類型。 –