2017-10-31 19 views
0

日付を手動で指定することなく過去30日間の指定されたテーブルからすべてのデータを取得するにはどうすればよいですか?私はそのcreated_time過去30日間にあるすべてのレコードを取得しようとしていますPostgreSQLデータベースから過去30日間のすべてのデータを取得するSQL

school 
(
    school_id bigint,school_name character varying(100), 
    school_code character varying(10), 
    created_time timestamp with time zone, 
) 

次のように私はテーブルを持っています。 私は次のようなものをしようとしていますが、それは私のために働いていません。

select * from school where created_time > '2017-09-31 11:12:57.425+00'; 

また、私は、現在を取得することにより、過去30日間のデータを取得したい、手動で日付を指定する必要はありません自動的に日付。これを達成する方法はありますか?

次のように私は取得しています現在のエラーは次のとおりです。

ERROR: date/time field value out of range: "2017-09-31 11:12:57.425+00" 
LINE 1: select * from school where created_time > '2017-09-31... 
                 ^
********** Error ********** 

ERROR: date/time field value out of range: "2017-09-31 11:12:57.425+00" 
SQL state: 22008 
Character: 50 

答えて

0

だけcurrent_timestamphereを文書化)を使用します。

select * 
from school 
where created_time > current_timestamp - interval '30 day'; 
+0

これはおかげで、私はさらにいくつかの日付を引き出​​すしようとしています私のために働きました次のような別の表から選択します。学校からのs.school_name、s.user_created、u.email、u.first_name を選択します。ugrp_user u ここで、subscription_term = 'trial'およびs.user_created = u.user_idおよびcreated_time> current _タイムスタンプ - 間隔'30日 ';しかし、これは私に次のようなエラーを与えます: エラー:列参照 "created_time"があいまいです。問題が何であるかわからない –

+0

まず、 'from'節でカンマを使用しないでください。常に適切で明示的な 'join'構文を使用してください。第二に、新しい質問はコメントではなく新しい質問として尋ねられるべきである。第3に、問合せに複数の表参照がある場合は、常に列名を修飾します。 –

+0

@thanks Gordon Linoff、それを理解しようとしましょう –

関連する問題