android 上的 sqlite 中的日期时间算法

Datetime aritmethics in sqlite on android

我想在 Sqllite 中做一些日期时间算术运算。我有一个 table,其中两行定义为 DATETIME 类型。这些字段称为 LOG_FROM 和 LOG_TO。在对此 table 的查询中,我尝试执行以下操作:

SELECT SUM(LOG_FROM - LOG_TO) AS TIMESPENT FROM LOG_TABLE WHERE X=Y;

SUM 函数中的这个减法没有按预期工作。它总是 return 数字 0。我通过 cursor.getString.

读取数据

当我将日期存储在 table 中时,我将它们转换为 yyyy-MM-dd HH:mm:ss

格式的字符串

SQLite ignores column data types。您的日期字符串是字符串。

built-in date functions 支持您的日期格式,因此您可以使用它们将日期转换为数字。 假设您希望结果为天数,请使用 julianday:

SELECT SUM(julianday(LOG_TO) - julianday(LOG_FROM)) ...