2

我有一个带有字符串字段的 SQLITE DB,其中包含以下格式的日期:“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)

我做错了什么?

4

1 回答 1

4

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

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

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

但我建议首先将这些值转换为受支持的格式

于 2012-10-31T21:05:47.220 回答