0
我想寫一個sql查詢,我可以從過去3個月的數據。具體來說,我想知道每個客戶在過去3個月內的花費。我的日期字段是帶時區的時間戳(例如,2017-07-14 00:56:43.833191 + 00「)。如何獲取最近x個月的數據Postgres Sql查詢日期字段是時間戳嗎?
我並非試圖獲取最近90天的數據,而是最近3個月,所以如果它現在是2017年7月14日,我想在2017年4月1日到2017年6月30日之間獲取數據。
這是我現在擁有的,如果3個月在同一年,但它在多年內不起作用,這意味着如果當前日期是2017年2月15日,我希望它會從2016年11月1日到2017年1月31日返回數據。但是,這不起作用。
這是我目前的查詢,我很感謝您的幫助,謝謝!
select sum(amount), customer_id
from payments
where (date_part('month',payment_date) < (date_part('month',current_timestamp)-1) and
date_part('month',payment_date) >= (date_part('month',current_timestamp)-3)) and
(date_part('year',date_created) = date_part('year',current_timestamp))
group by customer_id
真棒 - 工作就像一個魅力。我還通過改變現在()到'2017-02-15'的日期來測試它是否會正確回到2016年11月,並且確實如此。謝謝!! – Jacob
順便說一句,不知道如果這是允許的,或者如果我需要創建一個單獨的問題,但跟進 - 我怎麼才能顯示結果總和(金額)> 5?如果我嘗試,我得到一個錯誤,我不能在一個where子句中有一個聚合函數。謝謝! :) – Jacob
@Jacob。 。 。嚴格地說,這應該是另一個問題,但答案是'總和(金額)> 5「。 –