mysql - SQL在Rails中查询的位置

标签 mysql ruby-on-rails ruby activerecord

当我输入时:

User.where(:created_at => "2015-08-06".."2015-08-07").where("updated_at > created_at + 1.day").count

返回错误:

SELECT COUNT(*) FROM `users` WHERE `users`.`created_at` BETWEEN '2015-08-06' AND '2015-08-07' AND (updated_at > created_at + 1.day)ActiveRecord::StatementInvalid: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'day)' at line 1: SELECT COUNT(*) FROM `users`  WHERE `users`.`created_at` BETWEEN '2015-08-06' AND '2015-08-07' AND (updated_at > created_at + 1.day)

from /home/guinness/shared/bundle/ruby/2.1.0/gems/activerecord-3.2.13/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in query'

这是怎么回事?如您所知,我想知道有多少用户在注册 1 天后保留下来。

最佳答案

1.day 是 ruby​​ 语法,不是 sql。试试这个:

 User.where(:created_at => "2015-08-06".."2015-08-07").where("updated_at > DATE_ADD(created_at, INTERVAL 1 DAY)").count

参见 http://www.w3schools.com/sql/func_date_add.asp

关于mysql - SQL在Rails中查询的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31960961/

相关文章:

ruby-on-rails - 如何显示在 Rails 控制台中运行的 SQL 查询?

ruby-on-rails - 从 Ruby 对象数组生成键值 JSON 对象

ruby-on-rails - 了解 "attribute_will_change!"方法

ruby-on-rails - 执行 "heroku db:migrate"并收到错误 "Please install the postgresql adapter"

php - 在现有网站上使用 Laravel

php - 每次点击提交时添加列表项

javascript - 将来自 mysql 的数据与 php 一起使用时,Google 折线图不会按月分组。只显示所有日期

ruby-on-rails - 力级加载和卸载 (RoR)

ruby-on-rails - 访问 GitHub 私有(private)仓库时部署到 ec2 实例失败

mysql - 连接表时如何使用案例条件