【发布时间】:2014-10-31 00:53:18
【问题描述】:
我在尝试编写 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 语句得到了空结果。
有什么想法吗?提前致谢。
【问题讨论】:
-
由于您的
Date列是 TEXT 尝试DATE(Date) BETWEEN ... -
不幸的是,它仍然返回空结果
-
好的。再来一次尝试。
strftime('%d/%m/%Y', Date) BETWEEN ... -
@PM77-1 我将我的 SQL 语句编辑为: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 strftime('%d/%m/%Y', Date) BETWEEN DATE(Date) AND DATE ('now', '+1 day') 但还是不行
-
否。
AND strftime('%d/%m/%Y', Date) BETWEEN DATE('now') AND DATE('now', '+1 day')如果您将示例数据粘贴为文本(不是图像),我将能够创建一个演示。
标签: sql database sqlite datetime select