我的日期格式为:“yyyy-MM-dd”(2017-03-23)
我的时间格式为:“hh:mm a”(晚上10:15)
如果在MYSQL中你可以执行此操作以使用am / pm转换时间:
SELECT * FROM table_name ORDER BY STR_TO_DATE(timeField,'%h.%i%p');
如何在SQLITE中执行此操作?
我尝试了这个但是没有用:
SELECT appointment_date, start_time FROM appointment order by appointment_date, DATE(start_time, '%h:%i %p')
结果: Image Link
据说AM首先应该是PM,因为默认是ASC,我也尝试过使用DESC,但没有正确安排结果。
答案 0 :(得分:2)
您似乎将start_time()
值存储在字符串中。
你可以这样做:
order by appointment_date,
(case when start_time like '% am' then 1 else 2 end),
start_time
SQLite并不真正支持日期/时间格式的am / pm。但是,这很容易用like
完成。
答案 1 :(得分:0)
更好的解决方案是将您的时间以24小时格式存储在另一列中,该列的类型应为DATETIME而不是varchar。
您可以使用以下方式转换时间:
SimpleDateFormat displayFormat = new SimpleDateFormat("HH:mm");
SimpleDateFormat parseFormat = new SimpleDateFormat("hh:mma");
Date date=new Date();
try {
date = parseFormat.parse(AmPmTimeFormatColumn);
}catch (Exception e){}
values.put("24HourFormatColumn", displayFormat.format(date));
然后这样订购:
通过DATETIME(24HourFormatColumn)选择* from table_name order;