2012-04-04 8 views
1

私は、特定の時間を秒単位で(6時間= 21600)保存している「discussion_duration」という列を含むテーブルを持っています。私はこのテーブルを 'created_at' + 'discussion_duration'でソートしたいと思います。order by created_at plus another value

ruby​​にcreated_atとdiscussion_durationを追加して日付を返します。しかし、レール.order()のパラメータはraw SQLであるため、これらの2つのフィールドを追加して出力順をどのように並べ替えるべきか分かりません。

ご協力いただければ幸いです。

+0

(とあなたが '.order'何かを送信することができませんAPIドック(http://apidock.com/rails/ActiveRecord/QueryMethods/order)で探してより複雑になりました.DBレベルでcreated_atを注文してから、Rubyコード(またはコード内のすべての注文)を受け入れることでより複雑なものを注文していますか? – MrDanA

答えて

1

編集:これはおそらくあなたが探しているものです。データベース固有の日付/時刻関数を使用する必要があります。ここではmysqlの例を示します。私の知る限り

.order('TIMESTAMPADD(SECOND, discussion_duration, created_at)')

+0

これはうまくいくはずです! TIMESTAMPADD関数を見たことがありません。 – fridgerator

+0

のように見えます: 'created_at + INTERVAL discussion_duration SECOND DESC'' – fridgerator