ruby-on-rails – Rails – 按小时排序
发布时间:2020-12-17 02:41:30 所属栏目:百科 来源:网络整理
导读:@events = Event.all(:order = "date DESC") 按日期订购我的活动,日期时间列. 是不是可以按日期订购,但只能按小时订购? (我在起诉sqlite3数据库) 谢谢! 解决方法 对于SQLite, @events = Event.all(:order = "time(date) DESC") 小心使用它,因为它忽略了日
@events = Event.all(:order => "date DESC") 按日期订购我的活动,日期时间列. 是不是可以按日期订购,但只能按小时订购? (我在起诉sqlite3数据库) 谢谢! 解决方法
对于SQLite,
@events = Event.all(:order => "time(date) DESC") 小心使用它,因为它忽略了日期. (请参阅下面的“片刻”.) CREATE TABLE test (date datetime primary key); INSERT INTO "test" VALUES('2011-01-01 08:00:00'); INSERT INTO "test" VALUES('2011-01-01 08:13:00'); INSERT INTO "test" VALUES('2011-01-01 09:23:00'); INSERT INTO "test" VALUES('2011-01-02 09:15:00'); 其中一个日期是1月2日. sqlite> select * from test order by time(date) desc; 2011-01-01 09:23:00 2011-01-02 09:15:00 2011-01-01 08:13:00 2011-01-01 08:00:00 片刻之后. . . 我意识到你想要按小时排序,而不是按时间排序.那个有问题的要求采用了不同的表达方式,并且排序不同. @events = Event.all(:order => "strftime('%H',date) DESC") sqlite> select date from test order by strftime('%H',date) desc; 2011-01-01 09:23:00 2011-01-02 09:15:00 2011-01-01 08:00:00 2011-01-01 08:13:00 最后两行按小时正确排序,按时间错误排序. 还是晚一点. . . OP在Heroku上部署,它不支持SQLite.要按小时降序排序,OP可能需要类似的东西 @events = Event.all(:order => "extract (hour from date) DESC") 并停止使用一个平台进行开发,并停止使用不同的部署平台. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |