SQLite日期查询在Android中

时间:2011-06-15 05:20:39

标签: android sql sqlite

我正在为我的应用程序使用SQLite数据库。

表结构如下:

_id  : integer primary key
name : text
day  : date

我能够以格式存储日期:dd-mmmmm-yyyy例如。 15-June-2011

但是当我试图从数据库中检索按日期过滤的所有记录时,它返回null。

database.query(DATABASE_TABLE, new String[] { "strftime('%d-%mm-%Y',date('now'))","strftime('%d-%m-%Y',"+KEY_DAY+")" },
"strftime('%d-%m-%Y',date('now'))=" + KEY_DAY , null,null,null,null,null);

即使有一些匹配日期,它也无法与任何人的约会相匹配。

我已经通过了SQLite的文档。但是还没找到任何解决方案。

我希望有类似的东西:

 select * from table where day=curdate();

我如何在SQLite中执行相同的任务? (是的,我可以灵活地更改存储在Dateabase中的日期格式)

同一任务的其他替代方案是什么?

2 个答案:

答案 0 :(得分:3)

在java编程中,您可以将任何日期格式转换为long(以毫秒为单位的时间),反之亦然。我的意见是在java中将日期格式化为长格式,然后在数据库中存储日期的长值。同时在检索时,您可以检索长值,然后根据预期的日期格式对其进行格式化。我一直在使用这种逻辑进行多种应用。

由于 迪帕克。

答案 1 :(得分:0)

函数strftime('%d-%m-%Y',date('now'))返回一个字符串,其中包含月份的数字格式(从01到12)。据the docs我所知,没有格式说明符可以返回月份的全名。

我认为您必须使用数字月份说明符而不是名称存储日期。