Преобразование даты с Redshift - PullRequest
1 голос
/ 22 апреля 2020

Я создаю переменную на конец месяца, которая работает с postgres, но мне нужно переписать ее в Redshift, чтобы понять, почему она показывает следующую ошибку?

База данных сообщила о синтаксической ошибке: Amazon Недопустимая операция: значения интервала с частями месяца или года не поддерживаются. Подробности: ---------------------------------- ------------- ошибка: значения интервала с частями месяца или года не поддерживаются. код: 8001 контекст: i

select
(date_trunc('month', ("Date (id created)" + INTERVAL '1 month'))) as "EoM"
from id

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Redshift использует dateadd для применения интервалов к временным меткам

select date_trunc(month, ( dateadd(month,1,"Date (id created)"))) as "EoM"
from id

см. https://docs.aws.amazon.com/redshift/latest/dg/r_DATEADD_function.html

1 голос
/ 22 апреля 2020

Redshift поддерживает функцию «last_day ()», которая возвращает дату последнего дня любого месяца. https://docs.aws.amazon.com/redshift/latest/dg/r_LAST_DAY.html

Это полезная функция для этих вычислений.

Redshift не может добавить месяц или год, так как для этих интервалов нет единой длины. Если вы хотите сохранить текущий маршрут, вы можете усечь интересующую вас дату до уровня месяца, добавить 35 дней, а затем снова усечь до месяца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...