- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要这个对 Rails 友好的 SQL 查询:
SELECT *,
IF (store.availability_offset IS NULL, DATE_ADD(product.release_date, INTERVAL 0 DAY), DATE_ADD(product.release_date, INTERVAL store.availability_offset DAY))
FROM products JOIN stores ON product.store_id = stores.id
WHERE (DATE_ADD(products.release_date, INTERVAL stores.availability_offset DAY) BETWEEN '2013-06-12' AND '2014-07-12' OR DATE_ADD(products.release_date, INTERVAL 0 DAY) BETWEEN '2013-06-12' AND '2014-07-12');
@products = Product.joins(:store).where("products.release_date >= :start_date AND products.publishing_date <= :end_date)", :start_date => params[:search][:start_date], :end_date => params[:search][:end_date]")
IF
有条件才能管理店铺availability_offset
如果它的值为 NULL。 DATE_ADD()
函数能够添加availability_offset
值到日期 release date
. 最佳答案
您只需将您的 SQL 选择复制到 Rails ActiveRecord 选择中。尝试这样做:
@products = Product.select('products.*, IF(store.availability_offset IS NULL, DATE_ADD(products.release_date, INTERVAL 0 DAY), DATE_ADD(products.release_date, INTERVAL stores.availability_offset DAY)) AS store_availability_offset')
.joins(:store).where("products.release_date >= :start_date AND products.publishing_date <= :end_date)", :start_date => params[:search][:start_date], :end_date => params[:search][:end_date]")
if
select中的语句,我使用别名列进入
store_availability_offset
.我希望这对你有帮助。
关于sql - Ruby on rails : perform SQL DATE_ADD() function and IF conditional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30371779/
我怎样才能INSERT和ON DUPLICATE KEY如果满足特定条件则更新整行?我要更新全row如果VALUES(date_added)比 date_added 更老从表中。 我看过这篇文章: h
有区别吗: SELECT DATE_ADD('2005-01-01', INTERVAL 3 MONTH); 和 SELECT '2005-01-01' + INTERVAL 3 MONTH; 最佳答
我正在尝试通过向现有日期添加天/周/月来更新基于现有日期列的日期列 update Form_1 set `DateP1`= DATE_ADD(`Date`, INTERVAL `P1` week) w
我正在努力将 1 个月添加到 date() 并将其保存在我的数据库字段中。 我用这个 $query2 = "SELECT * ,DATE_ADD(`date_joined`,INTERVAL 30 D
我有这个列 'formatteddate',它是 varchar 现在我想得到最后 2 天 WHERE 格式化日期 > DATE_ADD(CURDATE(), INTERVAL -2 DAY) 如何将
我需要使用以下语句获取 MySQL 服务器日期: SELECT DATE_ADD(NOW(),INTERVAL 1 HOUR) - This Works as expected. 但现在我需要在数据库
SELECT DATE_ADD(`vj`.`departure`, INTERVAL sum(`run_time`) SECOND) AS arrivalTime FROM myTable vj.
我正在尝试以下 SQL: update Sales_details set due_date = DATE_ADD(last_sale_date, INTERVAL 35 DAY) where tas
在 phpMyAdmin 中尝试使用以下语法更新表中的date 字段: UPDATE MyTable SET 'date' = DATE_ADD('date', INTERVAL 7 DAY) 但是,
我试图在我的表上创建一个事件,每隔几分钟运行一次,以查看“next_run”是否现在(),如果是,则将“频率”添加到“next_run”,但每次我都会收到语法异常. 下面是表结构... LA
因此 PHP 不接受执行以下操作: $sql = "SELECT DATE_ADD('" . $this->db->escape($data['regpro_buy_date']) . "', INT
我在 MySQL 中有三个表。具有字段 id、姓名、电话、地址、id_work 的员工。 使用字段 id、名称。 缺少字段 id、name、id_staff start_date 和持续时间。 我有以
我正在运行一个查询,获取今天在 now() 的事件,并将其与过去 5 天同一时间的事件进行比较。 select count(*) ,date(timestamp) date , now() now
我想在一个过程中使用 Date_add 2 次,但它返回 0 行(虽然它应该返回行) 流程如下 select av.*, ap.*,c.* from tbl_available av left j
为什么日期字段nextdate不能通过执行以下操作按时间间隔更新? nextdate = DATE_ADD(`nextdate`, INTERVAL 30 DAY) 最佳答案 删除 nextdate
我正在尝试检索有来自 tbl_offers 的报价的产品 (tbl_product) tbl_offers 中的列 offerid,productid,discountrate,dateadded,d
| id | title | start | | 1 | smth | 2017-09-23 12:24:00| 我需要选择开始 = 当前日期 + 3 天
我有一个用户警报表,其中我们必须按照用户定义的时间间隔向用户发送警报,例如 0(仅一次)、3 个月、6 个月、1 年 所以我设计了一个这样的表格 id | user_id | ale
我编写了一些 SQL 来给出两个时间之间的日期范围,如下所示: select date_add(x.min_date, interval ((t500.id-1) * 30) minute) peri
MySQL DATE_ADD() 我正在尝试向日期字符串添加几天,并从中减去几个小时和分钟。也许这没有意义,但这就是我的意思...... INSERT INTO publication (`c
我是一名优秀的程序员,十分优秀!