我正在为我的应用程序使用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中的日期格式)
同一任务的其他替代方案是什么?
答案 0 :(得分:3)
在java编程中,您可以将任何日期格式转换为long(以毫秒为单位的时间),反之亦然。我的意见是在java中将日期格式化为长格式,然后在数据库中存储日期的长值。同时在检索时,您可以检索长值,然后根据预期的日期格式对其进行格式化。我一直在使用这种逻辑进行多种应用。
由于 迪帕克。
答案 1 :(得分:0)
函数strftime('%d-%m-%Y',date('now'))
返回一个字符串,其中包含月份的数字格式(从01到12)。据the docs我所知,没有格式说明符可以返回月份的全名。
我认为您必须使用数字月份说明符而不是名称存储日期。