вы становитесь жертвой date
beind, неявно приведенным к timestamp with thome zone
, чтобы разрешить вызов функции.
date_trunc определен только для timestamp with time zone
и timestamp
входов.
+01
+02
и т. Д. Зависит от правил перехода на летнее время в вашем регионе.
если вы хотите использовать метку времени вместо метки времени, сначала приведите дату к метке времени.
SELECT date_trunc('month', cast(my_date as timestamp)) FROM my_table
или вы можете создать свою собственную функцию, которая принимает дату и возвращает дату.
create or replace function date_trunc(text,date) returns date language sql as
'select date_trunc($1, $2::timestamp)::date';