1

我有一个带有两个表的数据库,每个表都有一个带有日期的列。我使用 strftime 来获取一整月或一整年的行。这些是 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);
    }

问题是years方法工作正常,但几个月看起来可以正常工作一段时间但是当我将新行保存到表(在本例中为table_week)与前几个月甚至前几年的日期时,它做奇怪的事情。我自己解释一下:

想象有 3 行的日期从 5 月开始,3 行的日期从 6 月开始......直到一切正常......现在我保存了一个新的行,日期是去年的 4 月、2 月或 12 月...... 1 . 它可以正常工作 2. 它可以在列表中显示月份,但单击时无法访问其余信息(不太可能发生几次) 3. 显示正确的月份但年份为 0 和4.显示错误的月份但年份是正确的(这通常发生在保存2011年的日期时,显示2011年但月份总是一月......)

我无法弄清楚这一点,但我确信这个月是问题所在,因为年份列表工作正常......任何帮助将不胜感激,非常感谢你提前

4

0 回答 0