Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 铁路及;Sqlite问题-将日期与db时间戳进行比较_Ruby On Rails_Ruby On Rails 3_Sqlite_Datetime - Fatal编程技术网

Ruby on rails 铁路及;Sqlite问题-将日期与db时间戳进行比较

Ruby on rails 铁路及;Sqlite问题-将日期与db时间戳进行比较,ruby-on-rails,ruby-on-rails-3,sqlite,datetime,Ruby On Rails,Ruby On Rails 3,Sqlite,Datetime,我正在尝试:将一天的总销售额映射到highcharts的一系列日期(是的,我的项目实际上与railscast示例完全相同) 不幸的是,我最终得到了很多0;我相信我模型中的一部分: def self.total_revenue_on(date) where("date(created_at) = ?", date).sum(:amt) end 未能将日期与数据库中写入的日期时间匹配,例如“2011-07-21 09:22:28.388944+0000”。很确定这就是它失败的地方,因为如果我从

我正在尝试:将一天的总销售额映射到highcharts的一系列日期(是的,我的项目实际上与railscast示例完全相同)

不幸的是,我最终得到了很多0;我相信我模型中的一部分:

def self.total_revenue_on(date)
  where("date(created_at) = ?", date).sum(:amt)
end
未能将日期与数据库中写入的日期时间匹配,例如“2011-07-21 09:22:28.388944+0000”。很确定这就是它失败的地方,因为如果我从数据库中手动删除时区表(去掉“+0000”,只留下“2011-07-21 09:22:28.388944”),它就可以正常工作


我认为这确实是一个rails/sqlite问题:是存储时间戳不正确,还是比较不正确?非常感谢您的帮助

好的,我通过使用不同的查找方法解决了这个问题:

def self.total_revenue_on(date)
   where("datetime >= ? and datetime < ?", date, date + 1.day).sum(:amt)
end
def self.总收入(日期)
其中(“日期时间>=?和日期时间<?”,日期,日期+1.天)。总和(:金额)
结束

仍然完全困惑于原始的问题,但这似乎是可行的

最佳实践是使用to_s(:db)来引用Rails中数据库中的日期时间。尝试:

 def self.total_revenue_on(date)
   where("date(created_at) = ?", date.to_s(:db)).sum(:amt)
 end