我有一个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)
我做错了什么?
答案 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。