SQLite订单AM/PM时间在Android



以下是字符串中的时间:

下午01:00上午11:20下午04:20

我想在SQLite中按时间排序。

在MySQL中可以这样做

SimpleSQLiteQuery query = new SimpleSQLiteQuery("SELECT * FROM coursesEntity ORDER BY STR_TO_DATE(startTime, '%l:%i %p') desc");

我知道它在SQLite中不起作用。

但是在android SQLite中有STR_to_DATE的替代方案吗?

或者有其他方法吗?

假设说这里是字符串中的时间:01:00 PM 11:20 AM 04:20 PM,因此01:00 PM11:20 AM04:20 PM这三个值存储在startTime列中,则以下内容将相应排序。

SELECT * FROM coursesEntity ORDER BY substr(startTime,7,2),substr(startTime,1,5);

也就是说,在排序时,您正在使用substr函数SQLAs Understanded By SQLite-Core Functions-substr来提取部分。

但是,建议您根据SQLite理解的SQL-日期和时间函数-时间字符串,使用一种公认的日期时间格式存储日期和时间(例如13:00 11:20 16:20而不是01:00 PM 11:20 AM 04:20 PM(。这样做可以简化问题,因为这样就不需要提取字符串的部分。

例如,考虑下表,该表有一个提取列better_startTime,该列存储相同的时间,但格式为HH:MM,则可以使用以下其中一个:-

SELECT * FROM coursesEntity ORDER BY time(better_startTime);
SELECT * FROM coursesEntity ORDER BY better_startTime;

最新更新