1

それぞれのテーブルに日付の列がある 2 つのテーブルを持つデータベースがあります。strftime を使用して、1 か月または 1 年の行を取得します。DatabaseHelper クラスのメソッドは次のとおりです。

public Cursor GetListOfYears() {

        return myDb.rawQuery("SELECT DISTINCT strftime('%Y',date) AS _id 
                                  FROM table_week ORDER BY date", null);    
    }


public Cursor GetListOfMonths() {

        return myDb.rawQuery("SELECT DISTINCT strftime('%m',date) AS _id,   
                             strftime('%Y',date) AS year 
                             FROM table_week ORDER BY date", null);
    }

問題は、年の方法は適切に機能していますが、月の方法はしばらくの間正常に機能しているように見えますが、前の月または前の年の日付で新しい行をテーブル (この場合は table_week) に保存すると、変なことをします。私は自分自身を説明します:

5 月からの日付が 3 行あり、6 月からの日付が 3 行あると想像してください...そこまではすべて正常に機能しています...今では、昨年の 4 月、2 月、または 12 月の日付を含む新しい行を保存しています... 1 . 問題なく動作する可能性があります 2. リストに月を表示できますが、クリックすると残りの情報にアクセスできません (数回発生した可能性は低いです) 3. 正しい月を表示しますが、年は 0 であり、 4. 間違った月が表示されますが、年は正しいです (これは通常、2011 年の日付を保存するときに発生し、2011 と表示されますが、月は常に 1 月です...)

私はこれを理解することはできませんが、年のリストが正常に機能するため、月が問題であると確信しています...どんな助けも大歓迎です、よろしくお願いします

4

0 に答える 0