【发布时间】:2021-02-28 06:42:03
【问题描述】:
我有许多公司的合同开始时间,我想通过创建一个列来报告每个合同年份,并将合同开始时间更新为选定的年份。 SQL 中有许多解决方案涉及 DATE_ADD 或 DATEFROMPARTS 之类的函数,但我无法将其适应 rails(如果这些函数完全可用的话)。
我得到的最接近的是:Company.select("contract_start + '1 YEAR'::INTERVAL as new_contract_start")。这会使每个合同开始时间增加 1 年,但不考虑超过一年(或同年开始)的合同。我也尝试了以下方法,但再次遇到语法错误:
new_year = 2020
Company.select("contract_start + '#{new_year} - EXTRACT (YEAR from contract_start) YEAR'::INTERVAL")
我正在寻找一种解决方案,可以:
- 直接将年份设置为我想要的
- 根据与所需年份的距离添加可变数量的年份
我正在使用 Ruby 2.3.3
【问题讨论】:
标签: ruby-on-rails ruby sqlite datetime activerecord