我有一个带有属性Day和Time的Schedule模型。时间是数据类型的时间。
我有数据,即
星期一/ 2014-04-26 15:00:00.000000
星期一/ 2014-04-25 16:30:00.000000
在我的控制器中,我有@schedule = Schedule.all(:order => 'Day, Time')
现在是按日期排序,如何按时间排序,无论日期如何?
答案 0 :(得分:4)
如果你正在使用Postgres,你可以使用
@schedule = Schedule.all.order('date_time_field::time').
如果您使用的是Mysql,我认为它就像
DATE_FORMAT(colName,'%H:%i:%s') TIMEONLY
SQLite的
@schedule = Schedule.all.order('time(date_time_field)')
答案 1 :(得分:0)
这是一个SQLite3 Ruby连接器问题。在Postgres上工作正常。
看起来SQLite对本文所述的时间数据类型没有原生的理解:Rails Active Record find(:all, :order => ) issue和此处:http://www.sqlite.org/datatype3.html
将属性从time
重命名为class_time
并未解决此处建议的问题:Sqlite3 activerecord :order => "time DESC" doesn't sort