I want to save durations (2 days, 5 years, ...) as intervals in PostgreSQL from my Rails application.
Both duration_min and duration_max are values like \"2 days\" or \"
You were close:
class CreateExamples < ActiveRecord::Migration
def change
create_table :examples do |t|
t.column :duration_min, :interval
t.column :duration_max, :interval
t.timestamps
end
end
end
Usage example:
Example.create duration_min: '2 hours', duration_max: '2 days'
#=> #
Example.where(%[TIMESTAMP ? - TIMESTAMP ? BETWEEN "duration_min" AND "duration_max"], DateTime.now, 10.hours.ago)
#=> #]>