2014-01-30 45 views
0

我想向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 

如何排除第一個查詢的星期六和星期日,並在第二個查詢中包括它們(對於所有小時)?

回答

2

您在WHERE子句中添加了一個額外的條件。

對於工作日是:

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

而對於週末:

... AND EXTRACT(dow FROM created_at) NOT BETWEEN 1 AND 5 ... 
相關問題