在SQLite Order By Datetime中,desc返回错误的数据

时间:2015-05-05 11:29:06

标签: sqlite

我在Sqlite.dteTime中有一个疑问DataType是Table结构中的Varchar(200)。我希望按日期时间顺序获得结果。

"从表中选择dteTime ORDER BY dteTime Desc",

获得结果

" 05/05/2015 12:38:43 PM"

" 05/05/2015 12:38:43 AM"

" 05/05/2015 10:57:04 AM"

" 05/05/2015 10:57:04 AM"

" 05/05/2015 10:51:25 AM"

" 05/05/2015 10:51:25 AM"

" 05/05/2015 04:38:35 PM"

" 05/05/2015 04:00:48 PM"

" 05/04/2015 11:38:43 PM"

取而代之的是如何获得(预期结果)

" 05/05/2015 04:38:35 PM"

" 05/05/2015 04:00:48 PM"

" 05/05/2015 12:38:43 PM"

" 05/05/2015 10:57:04 AM"

" 05/05/2015 10:57:04 AM"

" 05/05/2015 10:51:25 AM"

" 05/05/2015 10:51:25 AM"

" 05/05/2015 12:38:43 AM"

" 05/04/2015 11:38:43 PM"

任何解决方案?

2 个答案:

答案 0 :(得分:2)

使用日期格式,例如unixtime(自纪元以来的秒/毫秒)或ISO 8601(例如yyyy-MM-dd'T'HH:mm:ssZ)作为日期时间戳,以便自然排序顺序也是按时间顺序排列。

答案 1 :(得分:1)

SQLite没有内部日期类型。在这种情况下,它按字母顺序排序。您可以用iso格式编写日期,或transform进行排序。