Ich würde vorschlagen, nicht zu sehr über das Problem nachzudenken und nur das erste Datum/die erste Uhrzeit des Monats zu verwenden. Postgres hat viele datumsspezifische Funktionen – von date_trunc()
bis age()
bis + interval
-- um Termine zu unterstützen.
Sie können sie einfach in das gewünschte Format konvertieren, die Differenz zwischen zwei Werten ermitteln und so weiter.
Wenn Sie Ihre Abfrage wie folgt formulieren:
where year_month = date_trunc('month', now()) and user_id = 'adc1-23...'
Dann kann es leicht einen Index auf (user_id, year_month)
nutzen oder (year_month, user_id)
.