Passing a dynamic interval to generate_series()
От | Igal Sapir |
---|---|
Тема | Passing a dynamic interval to generate_series() |
Дата | |
Msg-id | CA+zig0-suhFUeS7xcJyZ=4HDFXJ3Kn2adXo3B4zHUzDFgMscCw@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Passing a dynamic interval to generate_series()
Re: Passing a dynamic interval to generate_series() |
Список | pgsql-general |
Hello,
I am trying to pass a dynamic interval to generate_series() with date range.
This works as expected, and generates a series with an interval of 1 month:
date_trunc('month', current_date),
date_trunc('month', current_date + interval '7 month'),
interval '1 month'
)
This works as expected and returns an interval of 1 month:
SELECT ('1 ' || 'month')::interval;
But this throws an error (SQL Error [42601]: ERROR: syntax error at or near "'1 '"):
SELECT generate_series(
date_trunc('month', current_date),
date_trunc('month', current_date + interval '7 month'),
interval ('1 ' || 'month')::interval
)
date_trunc('month', current_date),
date_trunc('month', current_date + interval '7 month'),
interval ('1 ' || 'month')::interval
)
And this returns a series with interval of 1 second??
SELECT generate_series(
date_trunc('month', current_date),
date_trunc('month', current_date + interval '7 month'),
(interval '1 ' || 'month')::interval
)
date_trunc('month', current_date),
date_trunc('month', current_date + interval '7 month'),
(interval '1 ' || 'month')::interval
)
Because this returns an interval of 1 second:
SELECT (interval '1 ' || 'month')::interval;
Is that a bug?
I am able to work around the issue using a CASE statement, but shouldn't it work simply by concatenating the string with the || operator?
Thank you,
Igal
В списке pgsql-general по дате отправления: