問題についてあまり深く考えずに、月の最初の日付/時刻を使用することをお勧めします。 Postgresには、date_trunc()
からの日付固有の関数がたくさんあります。 age()
へ + interval
へ -日付をサポートします。
それらを必要な形式に簡単に変換したり、2つの値の差を取得したりすることができます。
クエリを次のように表現する場合:
where year_month = date_trunc('month', now()) and user_id = 'adc1-23...'
そうすれば、(user_id, year_month)
のインデックスを簡単に利用できます。 または(year_month, user_id)
。