0

androidからsqliteデータベースでステートメントを実行しようとしています...lastChagedDateが指定した日付よりも大きいテーブルからいくつかのレコードを返したいです。

私がこれを持っているとしましょう:

private String ending_date = "2012-01-01 08:24:59";

roadmapSyncStmt = "SELECT * FROM roadmap WHERE lastChangedDate > '"+ ending_date +"'";

roadmapSyncStmtは、日付でいっぱいのsqliteテーブルで実行するものです。ステートメントは次のようになります。

SELECT * FROM roadmap WHERE lastChangedDate >"2012-01-01 08:24:59"

そして、実行すると、次のエラーが発生します。

sqliteが返されました:エラーコード= 1、msg = "2012"付近:構文エラー

私のデータベースにはこの条件を尊重するデータがたくさん含まれていますが、カーソルにデータがありません。誰かが私が間違っていることを知っていますか?

4

1 に答える 1

2

日付の値は、二重引用符ではなく一重引用符で囲む必要があります。このような:

SELECT * FROM roadmap WHERE lastChangedDate > '2012-01-01 08:24:59'

学習中は、PCベースのSQLiteエディタ(SourceForgeにある「SQLiteデータベースブラウザ」など)をインストールすることをお勧めします。アプリでテストするよりもはるかに迅速で簡単です。DBの開発、テスト、クエリの作成などはすべてPCで実行する必要があると言っても過言ではありません。そうすれば、アプリに組み込むのはほとんどコピー/貼り付けの練習になります。

幸運を。

于 2012-09-15T17:56:11.240 に答える