sqlite3 C / C ++ APIを使用して、SELECTクエリを使用してテーブルから行を取得します。sqlite3_step()の後にタイムスタンプ列の値を取得するためのsqlite3_column_timestamp()が表示されません。タイムスタンプ値を取得するにはどうすればよいですか?
2 に答える
列/値アクセサーは、直接サポートするデータ型( 、、、、、)に対応する型のみを持ちます。NULLINTEGERREALTEXTBLOB
アクセスを使用して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では、常に任意のタイプの値を任意の列に配置できます。このような宣言は、文書としてのみ役立ちます。