Android SQLite没有选择日期

时间:2015-07-30 10:26:36

标签: android sql sqlite

我的应用中有一个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

3 个答案:

答案 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的聚合函数和重复数据。