【发布时间】:2014-10-31 05:53:05
【问题描述】:
我在尝试从 SQLite 数据库获取最后周、月和年记录时遇到了一些问题。我的数据库表:
我只设法获得了今天、昨天、本周、本月和本年的记录。
本周:
SELECT SUM(amount) AS Total, (substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date,1, 2)) AS currentDate FROM TransactionRec WHERE currentDate BETWEEN DATE('now', '-7 days') AND Date('now') GROUP BY currentDate
本月:
SELECT SUM(amount) AS Total, (substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date,1, 2)) AS currentDate FROM TransactionRec WHERE currentDate BETWEEN DATE('now', 'start of month') AND Date('now') GROUP BY currentDate
今年:
SELECT SUM(amount) AS Total, (substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date,1, 2)) AS currentDate FROM TransactionRec WHERE currentDate BETWEEN DATE('now', '-1 year') AND Date('now')GROUP BY currentDate
但我不知道如何更改 SQL 语句以获取 last 周、月和年。有什么想法吗?
提前致谢。
【问题讨论】:
-
检查此参考sqlite.org/lang_datefunc.html。以及如何格式化日期时间字符串以使用日期时间函数。
-
顺便说一下,SQLite 不支持 strftime() 因为它会使程序没有响应
-
strftime()如果你使用得当,效果会很好。 -
但我不知道如何在我的情况下实施它,因为我已经尝试过了,但它不起作用
-
首先尝试像 YYYY-MM-DD 这样格式化您的日期字段,然后您可以尝试使用日期时间函数或使用 > AND 的 where 语句
标签: java android sql sqlite datetime