SQLITE DB按字符串格式化日期字段排序查询

时间:2012-10-31 19:51:52

标签: android sqlite date sql-order-by

我有一个SQLITE数据库,其字符串字段包含以下格式的日期:“01.01.2012”。 我想要的是在查询中按字符串格式化日期排序。 我试了这个没有成功:

SELECT * FROM fahrer, fahrzeuge, nutzungsarten, fahrtenbuch WHERE fahrtenbuch.nutzungsart_id = nutzungsarten._id AND fahrtenbuch.fahrzeuge_id = fahrzeuge._id AND fahrtenbuch.fahrer_id = fahrer._id ORDER BY strftime ('%d.%m.%Y', fahrtenbuch.startdatum)

我做错了什么?

1 个答案:

答案 0 :(得分:3)

startdatum列中的值不是SQLite识别的格式,因此您不能将其用作strftime的参数。 (即使它起作用,结果也不会正确排序,因为日期格式不是以最重要的字段,即年份开始。)

您可以尝试提取日期字段,以便排序与yyyy-mm-dd顺序等效:

SELECT ...
ORDER BY substr(startdatum, 7, 4),
         substr(startdatum, 4, 2),
         substr(startdatum, 1, 2)

但我建议首先将值转换为a supported format