Postgresql 在工作时间内获取所有条目(周末除外)

Postgresql 在工作时间内获取所有条目(周末除外),postgresql,activerecord,ruby-on-rails-4,Postgresql,Activerecord,Ruby On Rails 4,我想对Useractivities进行两个查询,一个是在工作时间内(周一至周五08-16)查找所有条目,另一个是在此时间范围外查找所有条目 Useractivity.where('activity = ? AND created_at >= ? AND EXTRACT (HOUR from created_at) BETWEEN ? AND ?', 'login',Time.now.since(-7.days).to_date, 8,16).count Useractivity.wher

我想对Useractivities进行两个查询,一个是在工作时间内(周一至周五08-16)查找所有条目,另一个是在此时间范围外查找所有条目

Useractivity.where('activity = ? AND created_at >= ? AND EXTRACT (HOUR from created_at) BETWEEN ? AND ?', 'login',Time.now.since(-7.days).to_date, 8,16).count

Useractivity.where('activity = ? AND created_at >= ? AND EXTRACT (HOUR from created_at) NOT BETWEEN ? AND ?', 'login',Time.now.since(-7.days).to_date, 8,16).count

如何在第一个查询中排除星期六和星期日,并在第二个查询中包括它们(所有时间)?

您可以在WHERE子句中添加一个额外的条件

在工作日内:

... AND EXTRACT(dow FROM created_at) BETWEEN 1 AND 5 ...
周末:

... AND EXTRACT(dow FROM created_at) NOT BETWEEN 1 AND 5 ...