sqlite3 C / C ++ APIを使用して、SELECTクエリを使用してテーブルから行を取得します。sqlite3_step()の後にタイムスタンプ列の値を取得するためのsqlite3_column_timestamp()が表示されません。タイムスタンプ値を取得するにはどうすればよいですか?
2 に答える
列/値アクセサーは、直接サポートするデータ型( 、、、、、)に対応する型のみを持ちます。NULL
INTEGER
REAL
TEXT
BLOB
アクセスを使用してTEXT
、日付の列値を取得/設定します。
SQLには、クエリでそれらを処理できるようにするヘルパー関数がいくつか用意されています。
私はSQLiteManagerに精通していませんが、テーブルが宣言されたデータ型のみを報告していると思います。
ステートメントを解析するときCREATE
、sqliteは、十分にサポートされている多くのデータ型の意図を理解し、それらを内部ストレージ構造に適したものに自動的にマップします。 VARCHAR
たとえば、にマップさTEXT
れます。列が宣言されDATETIME
、sqliteが内部的にマップしたと仮定しますTEXT
。
SQLiteには特別なタイムスタンプデータ型はありません。
SQLiteの日付と時刻の関数のいずれかを使用する場合は、タイムスタンプをサポートされている形式の1つ、つまり、YYYY-MM-DD HH:MM:SS
またはのような文字列HH:MM:SS
、ユリウス日番号、またはUnixタイムスタンプ番号で保存する必要があります。
テーブルの列タイプをとして宣言できますDATETIME
が、SQLiteはそのタイプを無視します。SQLiteでは、常に任意のタイプの値を任意の列に配置できます。このような宣言は、文書としてのみ役立ちます。