【问题标题】:ActiveRecord: how to query records created on a specific weekday (e.g. on Mondays, Tuesdays, etc)ActiveRecord:如何查询特定工作日(例如周一、周二等)创建的记录
【发布时间】:2021-05-06 23:33:24
【问题描述】:

我正在尝试使用 ActiveRecord 查询 postgreSQL 数据库,以获取在特定工作日(例如星期五)创建的所有记录。我的记录是这样的:

#<PortfoDatum:0x00007fbdcb4d2660
 id: 442114,
 user_id: 96,
 label: "01:20 PM",
 cash_balance: 994540.0,
 created_at: Tue, 02 Feb 2021 13:20:00 EST -05:00,
 updated_at: Tue, 02 Feb 2021 13:20:00 EST -05:00,
 date: "2021-02-02 13:20:00 -0500",
 holdings_snapshot: {"NFLX"=>10}>

到目前为止,我已经尝试过使用 .wday 方法进行编织,但没有运气。任何帮助将不胜感激。

【问题讨论】:

    标签: ruby-on-rails ruby database postgresql activerecord


    【解决方案1】:

    对于 postgres,您可以使用 date_part,其中 Monday=1、Tuesday=2 等。

    例如,要查找在星期五创建的所有用户,您可以使用: User.where("DATE_PART('dow', created_at::date)=?",5)

    【讨论】:

    • date_part 等价于 EXTRACT('dow' FROM created_at) - 这是除了 dow 之外更标准的 SQL。在这两种情况下都不需要强制转换为日期。 postgresql.org/docs/9.1/…
    猜你喜欢
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多