我在Rails应用程序中使用一个PostgreSQL数据库,在仅根据USERS表的timestamp
TYPE created_at
列中的时间部分提取用户记录方面面临挑战.
此查询运行良好:
users = User.where(" DATE_PART('hour', created_at) >= ?
AND DATE_PART('minute', created_at) >= ?
OR DATE_PART('hour', created_at) <= ?
AND DATE_PART('minute', created_at) <= ?",
10, 0, 15, 30).pluck :created_at
但我很好奇是否有更好的方法来提取所需的记录.从本质上讲,我的目标是仅根据时间查询记录,不包括日期.例如,我希望检索在任何一天(年、月和日)创建的10:00
到12:30
之间的所有用户.
我还try 了这个:
User.where("EXTRACT(HOUR FROM created_at) BETWEEN ? AND ?", 14, 15)
但它只处理小时,而不是分钟.
所需时间可以是10
-12
小时或10:00
-12:30
小时.
如果我想提取从10:00
到12:30
的记录,我如何管理这几分钟?
简而言之,我正在寻找一种方法,在这种方法中,我可以指定所需的时间并获得这些时间段内的所有记录.