0

SQLiteデータベースで次のクエリを実行します。

" ...WHERE mydate >= '" + inicialdate + "' AND mydate <= '" + finaldate + "'";

mydateデータベースのフィールドで、DATEと入力します。inicialdatefinaldateは文字列です。

ここでの考え方は、ユーザーが指定した2つの異なる日付の間でクエリを実行することです。DataPickerを使用して、ユーザーがデータを入力できるようにします。したがって、これらの日付をDatePickerから返して、および文字
列に入れます。inicialdatefinaldate

文字列に入力する日付の形式は「YYYY-MM-DD」です。

文字列に値を入力するとクエリは何かを返しますがfinaldate、2つの文字列、または最初の文字列に日付を入力すると、クエリから何も受信しません。

4

2 に答える 2

1

これは機能します:

> sqlite3
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test(mydate date);
sqlite> insert into test values('2012-09-09');
sqlite> select * from test where mydate >= '2012-09-08' and mydate <= '2012-09-10';
2012-09-09

同じクエリがDBで機能しますか?表の値は別の形式を使用している可能性があると思います。

于 2012-09-10T07:11:48.777 に答える
0

" ...WHERE mydate >= '" + inicialdate + "' AND mydate <= '" + finaldate + "'";

この質問は正しいです。問題は私のコードにあり、dedatapickerがありました。

SQLITEでクエリを実行するには、YYYY-MM-DDの形式を使用する必要があります。データを取得してデータピッカーから直接クエリを実行していたため、YYYY-MDの形式でデータを取得することがありました。データピッカーでは、月または日が10未満の場合、月または日を表す1桁の数字を入力するだけです。

解決策は、ifステートメントを使用して数値が10未満かどうかを確認し、月または日の数値の前に「0」を付けることです。

まあ、これは問題を完全に解決しました

于 2017-03-08T19:37:22.453 に答える