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

Responder a