0

多数のアプリケーションのライセンス使用状況を記録するだけのアプリがあります。アプリは X 分ごとにライセンスの使用状況をポーリングするだけです。

営業時間内に生成されたレコードを取得するように、レコードをフィルター処理したいと思います。理由は、営業時間内と時間外のアプリケーションの使用状況を表示することです。

現在、mysqlステートメントを使用してフィルタリングするコードがあります:-

app_usage.find(<app id>.feature.find(:all, 
 :conditions => ["name = ? and hour(created_at) > ? and 
  hour(created_at) < ? and dayofweek(created_at) not in (1,7)", 
 <feature_name>, 8, 18])

もちろん、これは sqlite3 データベースでは機能しません。Rubyを使ってそれを行う方法があるかどうか知りたいですか?

4

1 に答える 1

0

ActiveRecord には、この種の MySQL 固有の関数のメソッドがないと思います。少なくとも、私はそれらを見つけていません。このクエリに相当するものを sqlite で探している場合は、次のようになります。

:conditions => ["name = ? and strftime('%H', created_at) > ? and strftime('%H', created_at) < ? and strftime('%w', created_at) not in (1,7)", <feature_name>, 8, 18]

ただし、これは MySQL では機能しません。

于 2013-01-04T12:52:31.793 に答える