我一直在處理有關查詢created_at
在當前或過去x周內的記錄問題。假設今天是星期三,那麼從星期一到午夜,直到現在,如果x = 1。如果x> 1,我正在尋找當前星期,直到今天或過去一週,但沒有使用常規因爲這會讓我在星期三到星期三得到我,而我只是在看「整個」周。從過去的x周獲取記錄
我試過了間隔解決方案,還有像WHERE created_at > (CURRENT_DATE - INTERVAL '5 week')
這樣的東西。 這個解決方案適用於日,月,年等,因爲我實際上是通過其他後端邏輯構建查詢。
我正在尋找一個「找一個已經創造了一切的通用查詢‘X期’回
編輯:
自去年的時候,我已經在我的Ruby實現了這個on Rails應用程序。使用HOUR時,這已經引起了一些問題,其內置是一切,但HOUR(月,日和年)
SELECT "customer_uses".*
FROM "customer_uses"
WHERE (customer_uses.created_at > DATE_TRUNC('MONTH', TIMESTAMP '2017-09-17T16:45:01+02:00') - INTERVAL '1 MONTH')
這在我的測試案例正確工作的工作。(車這個的數量)。 TIMESTAMP由DateTime.now
生成,以確保我的測試用例使用「時間旅行」測試的時間覆蓋,因此不使用內置函數。
(我剝去了一些額外的WHERE-調用應該是不相關的)。
爲何小時不工作對我來說是一個謎,因爲我用它與的HOUR
代替MONTH
一個插線如上所示:
SELECT "customer_uses".*
FROM "customer_uses"
WHERE (customer_uses.created_at > DATE_TRUNC('HOUR', TIMESTAMP '2017-09-17T16:45:21+02:00') - INTERVAL '1 HOUR')
WHERE created_at>(CURRENT_DATE - INTERVAL'5 week')''有什麼問題?你是否在這裏要求幾個查詢,在任何時間段(例如,月,周)? –
也許︰'where date_trunc('week',created_at)> date_trunc('week',current_date) - interval'5 week'' –
我正在尋找使用周的開始。我想這個查詢會是「相同的」,因爲它會簡單地在'INTERVAL'5個月',正確的@TimBiegeleisen? –