私はcreated_at
が現在の過去またはx週間以内のレコードを照会することに関して問題を抱えて戦ってきました。今日は水曜日ですから、月曜日から深夜まで、x = 1の場合は今までです。x> 1の場合は、現在の週、今日まで、または過去の週を探していますが、定期的ではありませんinterval '1 week'
それは水曜日から水曜日まで私を受け取り、私は「全体」の週だけを見ています。過去x週のレコードを取得する
私はインターバルソリューションを試しましたが、WHERE created_at > (CURRENT_DATE - INTERVAL '5 week')
のようなものも試しました。 私は実際に他のバックエンドロジックを使ってクエリを構築しているので、日、月、年などの両方で動作するソリューションが望ましいでしょう。私は 『X期間』バックを作成されているすべてを探す」ための一般的なクエリを探しています
編集:
最後の時以来、私はRubyでこれを実装しましたHOURを使用する際にRailsアプリケーションに。これは、構築された私のテストケースで正しく動作HOUR以外のすべて(MONTH、DAY、およびYEAR)
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')
のために働いている。いくつかの問題を引き起こしている。(チェこれのckingカウント)。 TIMESTAMPはDateTime.now
によって生成され、私のテストケースが "時間移動"テストの時間オーバーライドを処理するようにします。したがって、組み込み関数を使用しないでください。
(私はいくつかの余分なWHEREコールを取り除きましたが、これは無関係であるべきです)。
は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 weeks')の何が問題なのですか?任意の期間(例:月、週)のクエリをいくつか求めていますか? –
おそらく: 'date_trunc( 'week'、created_at)> date_trunc( 'week'、current_date) - 間隔 '5 week'' –
私は今週の初めを使って探しています。私はクエリが "同じ"であろうと思います。なぜなら、それは 'インターバル' 5月 '単純に、右@TimBiegeleisenですか? –