【问题标题】:How to find last / 7 /30 days records of sqlite db when datetime is stored as text?当日期时间存储为文本时,如何查找 sqlite db 的最后 / 7 / 30 天记录?
【发布时间】:2012-09-13 06:23:21
【问题描述】:

我有一个活动,我将一些信息保存到我的数据库中。 我有两个文本视图,一个用于日期(yyyy-MM-dd),一个用于时间(HH:mm)。 如果我将 datetime 保存为 TEXT,我可以正确排序然后 desc,但是我可以通过 sqlite 查询找到 last/7/30 days 记录吗?此查询的示例何时是 datetime TEXT?

【问题讨论】:

    标签: java android sqlite datetime


    【解决方案1】:

    首先,您应该计算要分析的日期范围,然后将其边界转换为文本格式(您可以使用一些日期格式实用程序)。然后您应该使用转换后的日期作为参数查询 Db。

    假设您想要最近 30 天的列表:

    Calendar theEnd = Calendar.getInstance();
    Calendar theStart = (Calendar) theEnd.clone();
    
    theStart.add(Calendar.DAY_OF_MONTH, -30);
    
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    String start = dateFormat.format(theStart.getTime());
    String end = dateFormat.format(theEnd.getTime());
    
    // Now you have date boundaries in TEXT format
    
    Cursor cursor = db.rawQuery("SELECT * FROM table WHERE timestamp BETWEEN "+start+" AND "+end);
    

    【讨论】:

    • 对不起,你能解释一下,因为我不明白或一个小例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-25
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多