使用update_all为所有记录添加年份

时间:2016-03-26 06:48:13

标签: ruby-on-rails

我需要在保存日期前添加另一年更新模型中的所有记录,查找信息并选择 update_all ,我真的会帮助一个日期 update_all <的示例/ strong>数据库:PostgreSQL

一个例子: 保存的日期是执行01/15/17行动后的15/01/16等所有记录。

或其他一些选项会非常有用!

1 个答案:

答案 0 :(得分:1)

如果您使用PostgreSQL数据库,则可以使用datetime函数中的interval

$ rails console
=> User.last
=#<User:0x00563c0ed6e0c0
 id: 7,
 name: "foo",
 email: "foo@test.ru",
 created_at: Tue, 15 Mar 2016 19:54:52 MSK +03:00,
                                            ^^^^
 .......
 => User.update_all("created_at = created_at + '1 year'::interval")
 => #<User:0x00563c0c9e4f78
  id: 7,
 name: "foo",
 email: "foo@test.ru",
 created_at: Wed, 15 Mar 2017 19:54:52 MSK +03:00,
                                              ^^^^
 ........

如果MySQL数据库可以使用DATE_ADD功能。

如果列具有正确的类型,则所有这些都应该有效。