1

RailsとActiveRecordを使用して時間値のみを比較するにはどうすればよいですか?たとえば、午後3時以降に作成されたすべての行を探しますか?

を使用してみTime.parseましたが、Time(11:00 PMなど)ではなく、完全なDateTime値を期待しているようです。

基本的に、2つの日付の間、および2つの時間の間に存在するすべての行を探しています。たとえば、「21/01/2012」から「23/02/2012」の間に作成され、「3:00PM」以降に作成されたすべての行。日付の部分は正常に機能しているようですが、単純なSQLがないと時間の部分を機能させることができないようです。

4

2 に答える 2

1

次のようなことができます。

User.where("created_at > ? and created_at < ?", Time.now - 3.days, Time.now)
于 2013-01-18T09:50:07.703 に答える
0

私が理解していることから、SQLのdatetime属性から時間を抽出する関数を適用しています。みたいなselect HOUR(created_at)...

ActiveRecord はそれを行うことができませんが、gem squeelは Ruby でそれを行います。

Person.select{coalesce(name, '<no name given>')}

しかし、単純な SQL で行うのと根本的に異なる点はありません。

于 2013-01-18T12:27:33.253 に答える