Перевод с SQL Developer на PostgerSQL
Дали задание перенести VIEWs c Oracle на PostgerSQL:
SELECT ADD_MONTHS (TRUNC (SYSDATE), -46) + LEVEL AS date_value
FROM DUAL
CONNECT BY LEVEL <= TRUNC (SYSDATE) - ADD_MONTHS (TRUNC (SYSDATE), -46)
Выдает результат от даты которая была 46 месяцев назад до сегодняшней. Начал разбираться какие есть схожие функции в PosgreSQL, нашел что можно записать такой запрос:
select now()
Он выдаст сегодняшнюю дату и время. И собственно говоря вопрос, как сделать так чтобы он еще и выдавал даты на 46 месяцев назад от сегодняшней, нигде не могу найти что-то похожее.
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Если вам просто надо вывести дату каждого месяца от нынешней даты до 46
месяцев назад, вы можете просто использовать
generate_series:
SELECT date
FROM generate_series(
NOW()
, NOW() - INTERVAL '46 months'
, - INTERVAL '1 month'
) AS dates(date)
;