Rails 控制台 - 查找在某天创建的位置
Posted
技术标签:
【中文标题】Rails 控制台 - 查找在某天创建的位置【英文标题】:Rails Console - Find where created at = certain day 【发布时间】:2014-02-20 00:29:28 【问题描述】:使用 Ruby on Rails 控制台,是否可以查询数据库中某一天创建的所有记录?
类似
date = "january 5 2013"
users = User.find(:all, :conditions => :created_at => date)
【问题讨论】:
【参考方案1】:你可以这样做:
date = Date.parse('january 5 2013')
users = User.where(created_at: date.midnight..date.end_of_day)
【讨论】:
使用 date.beginning_of_day..date.end_of_day 有什么问题吗?【参考方案2】:试试这个,
User.where("Date(updated_at) = ?", "2018-02-9")
【讨论】:
【参考方案3】:你也可以这样做
User.where("created_at::date = ?", "january 5 2013".to_date)
【讨论】:
【参考方案4】:是的,可能是这样的:
date = Date.parse("january 5 2013")
users = User.where(created_at: date)
但created_at
是日期时间类型,例如2014-01-28 08:35:00.9608
我认为所有用户都有不同的 created_at
所以你可以这样使用
User.where("created_at = ?", "2014-01-23 16:19:48.199086")
【讨论】:
第一部分不起作用。您不必将字符串转换为日期吗?第二部分可能有效,但我需要它是可变的。我想要那天的所有用户,而不是特定用户。 您可以使用 stamp gem 并使用像 date = Date.today.stamp("january 5 2013") 这样的变量【参考方案5】:如果您看到以下链接Don't use BETWEEN (especially with timestamps) 您会注意到您可能会遇到问题。
你可以使用
users = User.where('created_at >= ? and created_at <=?', date.midnight, date.end_of_day)
"SELECT \"users\".* FROM \"users\" WHERE (created_at >= '2018-05-17 07:00:00' and created_at <='2018-05-18 06:59:59.999999')"
【讨论】:
以上是关于Rails 控制台 - 查找在某天创建的位置的主要内容,如果未能解决你的问题,请参考以下文章
C语言中如何控制只在某一个位置打印?比如进度百分比数字的显示。
如何使用 AJAX 请求将用户在类变量中的 HTML5 位置从 JavaScript 传递到 Rails 控制器?