排序日期字段以获取最早的日期

时间:2011-01-03 11:21:21

标签: java android

在我的数据库中,日期以DD-mm-yyyy格式存储,我如何对其进行排序以获得最早的日期?

Cursor c = myDb.query(TABLE, new String[]{"dob"}, null, null, null, null, "dob");

我已选择它按dob字段订购,但未订购...... 这是上述查询的输出

01-03 17:14:51.595: VERBOSE/ORDER DOB(1431): 01-11-1977
01-03 17:14:51.595: VERBOSE/ORDER DOB(1431): 01-12-1988
01-03 17:14:51.614: VERBOSE/ORDER DOB(1431): 15-01-1977
01-03 17:14:51.656: VERBOSE/ORDER DOB(1431): 31-01-1988

2 个答案:

答案 0 :(得分:1)

如果您使用SQL数据库并将日期存储为DATE或DATETIME类型,那么日期的显示方式无关紧要。您只需使用sql order by语句即可。如果我的假设有误,请提供更多详细信息。

答案 1 :(得分:1)

在使用sqlite和(afaik)的情况下,它缺少日期类型,我会将日期存储在UTC时间的epoch值中(这是一个很好的做法,因为你将独立于时区)然后你可以使用ORDER BY按最低值排序。

您只需转换回Java应用程序中的可读日期(例如,使用SimpleDateFormat)

Date date = new Date(yourEpochValue);
SimpleDateFormat smf = new SimpleDateFormat("dd-MM-yyyy");
smf.setTimeZone(yourTimeZone);  
String dateString = smf.format(date);

你要以相反的方式存储价值(如果这是你需要做的事情)