当我输入时:
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
关于mysql - SQL在Rails中查询的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31960961/