Как найти последний день месяца в postgres? У меня есть дата столбцы хранятся в виде числовой (18) в формате (YYYYMMDD) Я пытаюсь это сделать дату, используяКак получить последний день месяца в postgres?
to_date("act_dt",'YYYYMMDD') AS "act date"
затем найти последний день этой даты: так:
(select (date_trunc('MONTH',to_date("act_dt",'YYYYMMDD')) + INTERVAL '1 MONTH - 1 day')::date)
, но это дает мне эту ошибку:
ERROR: Interval values with month or year parts are not supported
Detail:
-----------------------------------------------
error: Interval values with month or year parts are not supported
code: 8001
context: interval months: "1"
query: 673376
location: cg_constmanager.cpp:145
process: padbmaster [pid=20937]
-----------------------------------------------
Любая помощь? версия
Postgres:
PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.874
'to_date' преобразует только строки в даты. Если ваша колонка содержит значения эпохи Unix, вам нужно использовать 'to_timestamp':' to_timestamp (act_dt) :: date'. –
@ AudriusKažukauskas: \t ОШИБКА: функция to_timestamp (числовая) не существует. Подсказка: никакая функция не соответствует указанному имени и типам аргументов. Возможно, вам придется добавлять явные типы. ? –
'to_timestamp' ожидает двойной тип точности, попробуйте добавить к нему свой столбец:' to_timestamp (act_dt :: float8) :: date'. Кстати, не могли бы вы подтвердить, что в этом столбце хранятся значения времени эпохи Unix? Если это не так, вы должны указать в своем вопросе, что именно он хранит. –