2016-05-16 10 views
-1

私はpostgresqlでタイムスタンプに関する助けが必要です。ユーザーがアプリをダウンロードしたときの時刻と、整数であるuser_idという列のタイムゾーンのタイムゾーンはdownload_atです。私は過去60日間の情報から最後の168時間以内にダウンロードしたユーザーのユーザーIDを抽出しようとしています。私はこれにどのように接近し、2つの異なる時間のために立ち往生したかについて少し混乱しています。 trunc関数を使って遊ぶ必要があるかもしれないと思うが、ちょっと立ち往生したようだ。タイムスタンプを時間に換算する

+0

最後の60日間の情報から「何を意味するのか」を明確にすることはできますか?いくつかのサンプルデータ構造が役立つでしょう。 –

+0

ちょうどそれはダウンロードから168時間以内にアプリを持つユーザーの最後の60日間の情報を得ると言います。 – Richard

答えて

0

基本的な例:

SELECT * 
FROM table1 
WHERE download_at > now() - '186 hours'::interval 

Postgresは日付と時刻を扱うに驚異的です。これの仕組みの内訳:

now() --function that returns the current time as a datetime object 

'186 hours'::interval --a string cast to an interval 

postgres ::で鋳造しています。インターバルにキャストするとき、Postgresはフォーマットされた英語をインターバルオブジェクトに変換します。あなたはdatetimeオブジェクトとintervalオブジェクトを引くことができるので、残りはあなたのために行います。

関連する問題