我在尝试编写SQLite语句时遇到一些问题,以便在今天的日期之前获取某个列与where子句的总和:
SELECT SUM(amount) AS total, (substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date, 1, 2)) AS Date FROM transactionRec
WHERE type = 'W' AND Date BETWEEN DATE('now') AND DATE('now', '+1 day')
我想在进行比较之前将我的日期列转换为正确的日期格式。我的模拟数据如下:
顺便说一句,它应该返回我今天的最后一行记录,但不知何故,我使用上面的SQL语句得到空结果。
有什么想法吗?提前谢谢。
答案 0 :(得分:2)
两个变化:
Date
。SomeDate
醇>
SELECT SUM(amount) AS total,
(substr(date, 7, 4) || '-' || substr(date, 1, 2) || '-' || substr(date, 4, 2)) AS SomeDate
FROM transactionRec
WHERE type = 'W' AND SomeDate BETWEEN DATE('now') AND DATE('now', '+1 day')
显然SQLite
在区分date
字段和Date()
函数时没有问题,但在遇到Date
列别名时会感到困惑。