0

sqlite3 C / C ++ APIを使用して、SELECTクエリを使用してテーブルから行を取得します。sqlite3_step()の後にタイムスタンプ列の値を取得するためのsqlite3_column_timestamp()が表示されません。タイムスタンプ値を取得するにはどうすればよいですか?

4

2 に答える 2

1

列/値アクセサーは、直接サポートするデータ型( 、、、、、)に対応する型のみを持ちます。NULLINTEGERREALTEXTBLOB

アクセスを使用してTEXT、日付の列値を取得/設定します。

SQLには、クエリでそれらを処理できるようにするヘルパー関数がいくつか用意されています。

私はSQLiteManagerに精通していませんが、テーブルが宣言されたデータ型のみを報告していると思います。

ステートメントを解析するときCREATE、sqliteは、十分にサポートされている多くのデータ型の意図を理解し、それらを内部ストレージ構造に適したものに自動的にマップします。 VARCHARたとえば、にマップさTEXTれます。列が宣言されDATETIME、sqliteが内部的にマップしたと仮定しますTEXT

于 2012-10-11T19:09:26.657 に答える
1

SQLiteには特別なタイムスタンプデータ型はありません。

SQLiteの日付と時刻の関数のいずれかを使用する場合は、タイムスタンプをサポートされている形式の1つ、つまり、YYYY-MM-DD HH:MM:SSまたはのような文字列HH:MM:SS、ユリウス日番号、またはUnixタイムスタンプ番号で保存する必要があります。

テーブルの列タイプをとして宣言できますDATETIMEが、SQLiteはそのタイプを無視します。SQLiteでは、常に任意のタイプの値を任意の列に配置できます。このような宣言は、文書としてのみ役立ちます。

于 2012-10-11T19:37:53.503 に答える