Wells Oliver <wells(dot)oliver(at)gmail(dot)com> writes:
> Seems you can't do this:
> create index on someschema.sometable ((modified_at::date));
> If modified_at is a timestamp with a time zone:
> ERROR: functions in index expression must be marked IMMUTABLE
> But you can if it's a timestamp without a time zone. Anyway, any way of
> casting that as to use it as an index?
The problem is that casting a timestamptz to a date (or a timestamp
for that matter) depends on your current timezone setting.
You could do something like
create index on sometable (((modified_at at time zone 'UTC')::date));
regards, tom lane