我正在尝试将所有created_at
时间戳记放在我的表格中,然后从它开始减少大约10分钟(600秒)。但我似乎无法弄明白。
MyApp::Model::MyTable.select(:created_at).update(:created_at => :created_at - 600)
我从created_at
列中选择所有行并对所述行执行更新,以便每行现在为created_at
- 600秒(10分钟)。但是,当我尝试这个时,会说incompatible data types in combination
。
有人可以给我一个更好的解决方案吗?
答案 0 :(得分:0)
我会在数据库中使用SQL命令执行此操作,以避免首先将所有记录加载到内存中:
MyApp::Model::MyTable.update_sql(
created_at: Sequel.lit('DATE_SUB(created_at, INTERVAL 10 MINUTE)')
)
请参阅DATE_SUB
的文档。