如何在SQLite中使用“strftime”(适用于Android应用)

时间:2012-05-18 09:53:48

标签: android date sqlite strftime

我有一个带有两个表的数据库,每个表都有一个带有日期的列。 我使用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);
    }

问题是年份方法工作正常,但是第一个月,看起来工作正常一段时间但是当我将新行保存到表格(本例中为table_week)时,前几个月的日期甚至是之前的日期多年来,这确实很奇怪。我会自己解释一下:

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

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

0 个答案:

没有答案