【发布时间】:2017-04-24 23:40:16
【问题描述】:
我正在网上搜索以找到满足此需求的解决方案: 我需要按月收集“amout”数据组的总和。
我发现的是这个请求:
Cursor cursor = mDb.rawQuery("SELECT strftime('%m', date), SUM(amount) FROM " + DATABASE_TABLE + " GROUP BY strftime('%m', date)", null);
但我正在拉扯我的头发,因为我无法从这个函数中收集任何月份strftime('%m', date);
我在网上发现这可能来自我的数据库中的日期格式,该函数无法理解。
存储在我的数据库中的实际日期是:“Thu Dec 01 00:00:00 GMT+00:00 2016”
我用这个游标检查返回值:
Cursor cursor = mDb.rawQuery("SELECT distinct date, strftime('%m', date) FROM " + DATABASE_TABLE, null);
在光标中(只检查光标的第一次检查)我有:
- cursor.getString(0) = 2016 年 12 月 1 日星期四 00:00:00 GMT+00:00 2016
- cursor.getString(1) = null
所以我正确地收集了日期,这是无效的转换。
编辑: 正如提议和解释的那样,我认为函数可能会误解格式(显然是这种情况)。
这是我将日期添加到我的数据库的方式:
我用这个:dateFormat = new SimpleDateFormat("dd/MM/yyyy");
然后在将日期保存到数据库之前将日期添加到我的 Money 对象中:dateFormat.parse("01/12/2016")
你能帮帮我吗? 谢谢。
【问题讨论】:
-
The actuel date stored within my DB is : "Thu Dec 01 00:00:00 GMT+00:00 2016"那么我们有你的错误的原因。您应该将日期存储为 有效 SQLite TimeString。 -
好吧,这就是我的想法,但我尝试了很多解析方法,不知道如何添加有效日期,什么是有效日期,SQLite 说话?谢谢。
-
即:
2016-12-09。您可以搜索sqlite timestring并获取官方文档。 -
我会在问题中添加细节,会更容易解释
-
I correctly gather the date但它的格式错误。
标签: android database sqlite date strftime