1

データベースには、かつて purchase_date と呼ばれる列と、lifetime と呼ばれるもう 1 つの列が 2 つあります。現在の課税年度が与えられたときに、有効期限が過ぎていない資産のみが表示されるように、結果をフィルタリングしようとしています。

私はもう試した

Asset.where("? < DATE_ADD(purchase_date,INTERVAL lifetime YEAR) AND  purchase_date >= ?",Date.new(2012,1,1),Date.new(2012,1,1))

しかし、それが機能する場合、これは MySQL に関連付けられることに気付きました。これが私の完全なアプリケーションで機能するだけであれば問題ありません。しかし、特にこれは Sqlite に対してテストされているため、データベースに依存しないものが必要です。このクエリを使用した Sqlite では、次の例外が発生します。

ActiveRecord::StatementInvalid: SQLite3::SQLException: ほぼ寿命

データベースに依存しない方法で、SQL ステートメントの日付列に整数列を追加するにはどうすればよいですか?

アップデート

Squeel で遊んでみましたが、うまくいくとは思いません。アダプターを検出し、それをベースにすることは可能かもしれません。

4

1 に答える 1