Thiago escreveu:
> Galera, bom dia.
>
> Sempre que eu preciso fazer um incremento em um campo data utilizo -/+
> interval '1 month', por exemplo, não sei fazer isso de outra forma, e
> estou tentando fazer um loop de para percorrer os ultimos 12 meses e da
> seguinte forma está dando erro:
>
> for vint 1..12 loop
> vdat := cast('01/' || cast(p_mes as text) || '/' || cast(p_ano as
> text) as date);
>
> vano := cast(to_char(vdat - 'interval ' || cast(vint as text) || '
> month','mm') as text);
> end loop;
>
> Dessa forma está apresentando o seguinte erro:
>
> Error: "ERROR: invalid input syntax for type date: "interval "
> CONTEXT: SQL statement "SELECT cast(to_char( $1 - 'interval ' ||
> cast( $2 as text) || ' month','yyyy') as text)"
> PL/pgSQL function "sp_com_grand_ultimos_doze_meses_new" line 20 at
> assignment"
>
> Alguém saberia se tem alguma forma de fazer isso.
>
> Obrigado.
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
Opa, descobri, preciso aprender a utilizar melhor o google fazendo
pesquisas em inglês, dessa forma sempre encontro mais conteúdo.
Para quem tiver a mesma dúvida da para fazer da seguinte forma:
select current_date - 1 * cast(cast(1 as text) || ' month' as interval)
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral