SQLite按日期排序

时间:2013-10-02 10:47:13

标签: android sqlite sorting date

我的日期是文本格式,因为SQLite没有日期和时间的数据类型,所以现在我想按日期对数据进行排序。

所以当我查询数据库时

SELECT jobno, ondate FROM Reports ORDER BY DATE(ondate)

这将按字母顺序返回数据排序而不是数据。我如何按日期排序?

4 个答案:

答案 0 :(得分:3)

使用Unix-epoch格式,基本上是INTEGER类型,或时间字符串(YYYY-MM-DD的东西)。 您可以找到可以使用的时间字符串格式列表here

排序unix-epoch就像对INTEGER类型排序一样,时间字符串就像对TEXT类型排序一样。

答案 1 :(得分:1)

当SQLite比较/排序dd/mm/YYYY形式的字符串时,它会像任何其他字符串一样处理它们,即字符串中的第一个字符具有优先级,例如,01/10/2013在{{1}之前排序}}

如果您比较或排序日期,或使用任何SQLite的built-in date functions必须使用其中一种支持的日期格式,例如22/01/2000

(在您的特定查询中,您正在调用YYYY-MM-DD函数,如果它不能识别其参数的格式,则返回DATE。这意味着您的记录根本没有排序。)

答案 2 :(得分:0)

我建议2件事,以毫秒为单位输入日期或使用格式为YYYYMMDD的文本。 每次要显示它们或想要存储它们时转换它们。 它并不复杂,它将为您省去很多麻烦。

答案 3 :(得分:0)

将日期存储为时间戳,即以毫秒为单位是更好的选择。