我的应用中有一个SQlite数据库,以yyyy-MM-dd HH:mm:ss
我很想查询一年中某个月发生的交易,但我的代码无效,我不知道为什么。我的查询如下所示,请咨询。
SELECT COUNT(id_sale) AS total_transactions,sold_to,
strftime('%m', sale_date) AS month,
strftime('%Y', sale_date) AS year,
sale_date FROM sales WHERE month=5 AND year=2015
答案 0 :(得分:2)
SELECT COUNT(id_sale) AS total_transactions,sold_to,
CAST(strftime('%m', sale_date) AS INTEGER) month,
CAST(strftime('%Y', sale_date) AS INTEGER) year,
sale_date FROM sales WHERE month=5
答案 1 :(得分:0)
由于您的日期值是字符串,因此无需投射。您可以直接与第一个选择语句中的字符串值进行比较
SELECT
COUNT(id_sale) AS total_transactions,
sold_to,
strftime('%m', sale_date) AS month,
strftime('%Y', sale_date) AS year,
sale_date
FROM sales
WHERE month='05' AND year='2015'
答案 2 :(得分:0)
我建议一个简单的字符串匹配:
... WHERE sale_date LIKE "2015-05-%"
我从查询中省略了结果列,因为我不明白你的意图是什么,混合了没有GROUP BY
的聚合函数和重复数据。