【问题标题】:sqLite database -next week, next Month querysqLite 数据库 - 下周,下个月查询
【发布时间】:2021-01-04 02:19:53
【问题描述】:

我有点卡在一个地方。我想在下周、下个月之前从我的 SQLite 数据库中加载数据等。但无法做到虽然我已经尝试过上周和上个月的查询,它正在工作很好。如果有人可以帮助我进行查询会很有帮助。

上周和上个月,我从以下答案中使用的查询运行良好。 Query last day, last week, last month SQLite

但是如果我想加载下周和下个月的数据,那么查询会是什么? 我尝试了以下查询,但没有成功。

SELECT  *  FROM AT_ActivityTrackerEntry   WHERE AT_ActivityTrackerEntry.DeadlineDate BETWEEN datetime('now', '6 days') AND datetime('now', 'localtime')  limit 10 

SELECT  *  FROM AT_ActivityTrackerEntry   WHERE AT_ActivityTrackerEntry.DeadlineDate BETWEEN datetime('now', 'localtime') AND datetime('now', '+6 days')  limit 10 

【问题讨论】:

    标签: sqlite android-sqlite android-sql


    【解决方案1】:

    第一个查询:

    SELECT * FROM AT_ActivityTrackerEntry   
    WHERE AT_ActivityTrackerEntry.DeadlineDate 
          BETWEEN datetime('now', '6 days') AND datetime('now', 'localtime')  
    limit 10
    

    是错误的,因为datetime('now', '6 days') 大于datetime('now', 'localtime'),所以BETWEEN 失败并且您没有得到任何结果。

    第二个查询:

    SELECT * FROM AT_ActivityTrackerEntry   
    WHERE AT_ActivityTrackerEntry.DeadlineDate 
          BETWEEN datetime('now', 'localtime') AND datetime('now', '+6 days')  
    limit 10  
    

    应该返回正确的结果,尽管在这两种情况下都应该使用(或不使用)修饰符 'localtime'

    BETWEEN datetime('now', 'localtime') AND datetime('now', 'localtime', '+6 days')
    

    也许你应该添加7天而不是6

    从现在开始的下个月你还可以这样做:

    BETWEEN datetime('now', 'localtime') AND datetime('now', 'localtime', '+1 month')
    

    请注意,没有ORDER BY 子句的limit 总是一个坏主意。

    【讨论】:

    • 感谢您的回答。我已经检查并实施了您的解决方案,幸运的是,它运行良好。感谢您的回答。我接受它作为正确答案。
    猜你喜欢
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2018-11-14
    相关资源
    最近更新 更多