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语言中如何控制只在某一个位置打印?比如进度百分比数字的显示。

在 Rails 中存储布局逻辑的最佳位置在哪里?

如何使用 AJAX 请求将用户在类变量中的 HTML5 位置从 JavaScript 传递到 Rails 控制器?

“那些看似不起波澜的日复一日,终会在某天让你看到坚持的意义。”

Rails创建一个简单的函数,在系统范围的控制台中运行

创建不需要模型的 Rails 视图 + 控制器?