我有一个预先存在的“事件”表,其中包括一个 event_datetime 列和一个 event_duration_minutes 列。这两列分别是日期时间和整数。
我最近遇到了在事件结束时触发电子邮件的需要。为了实现这一点,我正在创建一个周期性工作,它每 10 分钟扫描一次数据库,以查找最近完成的事件。因此,我开始编写查询以查找在给定时间窗口内结束的所有事件,但由于每条记录的持续时间字段的可变性质,查询一直在逃避我。
我认为最好的方法是添加一个 end_time 列,然后自动将其设置为 start_time + 持续时间。这是正确的方法吗?
无论如何,我对如何进行查询完全空白 - 有没有一种简单的方法来处理这些情况?还是对此类查询的普遍需求表明您的数据库需要一些工作?
编辑 - 这是在 postgres 9.2 上。这是我的 rails schema.rb 中的模式:
create_table "events", :force => true do |t|
t.string "title"
t.text "details"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "event_datetime"
t.integer "instructor_id"
t.integer "event_duration_minutes"
t.datetime "started_at_time"
end