PostgreSQL: Indexiert den Tag eines Zeitstempels
Betrachten Sie die folgende Tabelle:
Column | Type |
--------------------+--------------------------+
id | bigint |
creation_time | timestamp with time zone |
...
Queries wie die folgenden (geschweige denn kompliziertere JOINs) brauchen eine Weile, da sie die Erstellungszeit :: DATE für jeden Artikel berechnen müssen:
SELECT creation_time::DATE, COUNT(*) FROM items GROUP BY 1;
Wie erstelle ich einen Index für den Tagesteil des Zeitstempels -creation_time::DATE
?
Ich habe versucht
CREATE INDEX items_day_of_creation_idx ON items (creation_time)::date;
CREATE INDEX items_day_of_creation_idx ON items (creation_time::date);
Aber beide fehlgeschlagen mit:
ERROR: syntax error at or near "::"