Java 如何在sqlite中查找最近7天的记录?

Java 如何在sqlite中查找最近7天的记录?,java,android,sqlite,Java,Android,Sqlite,我想知道过去7天的记录。我想在where条件下为其编写一个查询。我对sqlite有非常基本的了解。请帮助我完成此查询。sqlite无法跟踪添加表行的时间。如果需要此行为,则应添加时间戳列,并在插入新行时在其中设置当前时间。您需要将日期存储在数据库中的一列中。在我的应用程序中,我将NSDate(显然是iPhone)转换为double,以便使用timeIntervalSinceReferenceDate存储在DB中。假设我可以查询日期范围 我编写了一些函数来计算过去/将来午夜X天的NSDate,我用

我想知道过去7天的记录。我想在where条件下为其编写一个查询。我对sqlite有非常基本的了解。请帮助我完成此查询。

sqlite无法跟踪添加表行的时间。如果需要此行为,则应添加时间戳列,并在插入新行时在其中设置当前时间。

您需要将日期存储在数据库中的一列中。在我的应用程序中,我将NSDate(显然是iPhone)转换为double,以便使用timeIntervalSinceReferenceDate存储在DB中。假设我可以查询日期范围

我编写了一些函数来计算过去/将来午夜X天的NSDate,我用它来确定查询的开始日期和结束日期。下面是代码的摘录,可以让您了解一些情况:

char selectQuery[MAX_STR];
sprintf(selectQuery, "SELECT DateTime FROM Journal WHERE DateTime >= %f AND DateTime < %f;", 
                     [startDate timeIntervalSinceReferenceDate],
                     [endDate   timeIntervalSinceReferenceDate]);
char selectQuery[MAX_STR];
sprintf(selectQuery,“从日期时间>=%f且日期时间<%f;”的日志中选择日期时间,
[起始日期时间间隔IncereferenceDate],
[endDate timeIntervalSinceReferenceDate]);

我不想将NSDate转换为日期时间字符串,因为我不相信所有不同时区和不同语言环境的日期格式转换。

我可以使用BEVERY子句吗?我的意思是在currentdate和currentdate-7之间按columnname从tablename order中选择*;sqlite中不存在Between。您可以从tablename中选择*,其中columnname>currentdate-60*60*24*7按columnname排序。您应该查看sqlite语法:sqlite.org/lang.html。我假设您将把日期存储为SQLite中确实存在的UNIX时间间隔。这是java的实际查询:从表\u名称中选择*,其中strftime(“%Y-%m-%d',field\u name)>=date(“%now',“-6天”)和strftime(“%Y-%m-%d',field\u name)