为什么日期/时间戳差异始终为NULL?

时间:2017-03-25 02:48:24

标签: java android sqlite cursor

我只是用这种方式编码:

Cursor cursor;
String sql = "SELECT l.acao, SUM(strftime('%s',l.data_fim) - strftime('%s',l.data_inicio)) AS total_time," +
             "FROM logs AS l " +
             "WHERE l.data_fim IS NOT NULL " +
             "GROUP BY l.acao";

我需要将两个日期之间的秒数相加,并将此值命名为total_time。但是,当我尝试获取total_time的结果时,它始终返回null,请参阅下一个代码:

String totalTimeInSeconds = (String) cursor.getString(cursor.getColumnIndex("total_time"));

当我在SqlLiteStudio中放入相同的查询时,它完美无缺。我究竟做错了什么?

2 个答案:

答案 0 :(得分:1)

您的问题是光标中的值实际上是NULL。

仅当原始日期值不在supported date formats之一时才会发生这种情况。您必须更改数据库。

答案 1 :(得分:0)

而不是使用cursor.getColumnIndex(),您可以在其中输入确切的索引。在您的情况下,total_time索引为1.例如:cursor.getString(1)cursor.getInt(1)