gpt4 book ai didi

sql - 使用 created_at 选择记录范围

转载 作者:太空宇宙 更新时间:2023-11-03 17:25:38 27 4
gpt4 key购买 nike

我想通过 created_at 属性选择一系列模型记录,我试过这个查询

Client.where('created_at BETWEEN ? AND ?', 30.days.from_now, DateTime.now.utc)

但它返回一个空数组。

1.9.3-p125 :029 > Client.where('created_at BETWEEN ? AND ?', 30.days.from_now, DateTime.now.utc)
Posting Load (1.0ms) SELECT `clients`.* FROM `clients` WHERE (created_at BETWEEN '2012-09-22 16:30:04' AND '2012-08-23')
=> []

我还想使用 .day 方法将这些记录分组到数组数组中,我的意思是,如果我有 10 条记录,我想将同一天创建的记录分组到单独的数组中!

最佳答案

Client.
where(created_at: 30.days.ago..Date.current).
group_by{|u| u.created_at.to_date}

您可以向 where 传递一个值数组,您希望在这些值之间得到结果(对于包含范围与不包含范围,请查看 .. 之间的差异>...).

此外,您可以通过调用 group_by 对结果进行分组,这将调用一个方法,即 .group_by(&:created_at) 或一个 block ,如我的例子。我使用了一个完整的 block ,因为您希望结果按日期而不是特定时间戳分组。如果您实际上想要月份中的第几天而不是完整的日期,您也可以调用 .group_by{ |u| u.created_at.day},但日期对我来说似乎更有用。

关于sql - 使用 created_at 选择记录范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12096325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com