2012-12-03 44 views
3

你好朋友我想检索2个日期之间的数据。我使用sql之间的子句它工作正常,当两个日期是2位数字或单一。
例如:如何检索android.sqlite中的两个日期之间的数据

SELECT * FROM EXPENSE WHERE EXP_DATE BETWEEN '20-12-2012' AND '21-12-2012'

此查询工作正常,但如果我使用日期'9-12-2012' AND '20-12-2012'它不工作.. returns null

+0

以更好的格式存储日期 - 例如, ISO8601 - 这是很好的排序和*不*在一个区域特定的格式。在SQLite [数据类型页面](http://www.sqlite.org/datatype3.html)上讨论了3种不同的策略! SQLite不*具有“日期时间”类型,所以*没有*自动转换。 – 2012-12-03 07:44:30

+0

更改日期格式并解决问题。 – AndroGeek

回答

0

尝试此查询。这个对我有用。

db.query(EXPENSE_TABLE_NAME, new String[]{"*"}, 
         "(EXP_DATE >= ? and EXP_DATE <= ?)" , new String[] {startDate,endDate}, " strftime(" + "\"%d" + "-" + "%m" + "-" + "%Y\"" + ",EXP_DATE) ",null ,null); 
+0

'strftime'生成零填充字段;这不是该数据库中使用的格式。 –

+0

@CL。它仅适用于dateformat。 –

相关问题