Decidi usar o smallint (sem plics, no ano):
IF ( date_part('year', NEW.data::timestamp)::smallint = 2006::smallint )
THEN
Funciona no 8.2 e 8.4
Ainda não entendo porque uma função - date_part() - retorna um double
(float8) e não um text. ou integer ou smallint. quando o valor esperado deve
ser, pelo menos, um integer (smallint) ... Inclusive porque um timestamo é
um text 'ano-mes-dia hora:minuto:segundo' ...
Tá na mão do sinhô no que esta transformação pode resultar (de float8 para
smallint). Mas eu teho fé.
Att.,
Sergio
2009/7/27 Fabrízio de Royes Mello <[email protected]>
>
>
> 2009/7/27 Roberto Mello <[email protected]>
>
>>
>> Não. Só que eu geralmente uso o EXTRACT ao invés do date_part, mas se me
>> lembro bem o extract chama o date_part, então não faz diferença.
>>
>>
> O Roberto tem razão, a declaração "func_expr" em
> "postgresql-8.4.0/src/backend/parser/gram.y" (linha 9055) demonstra
> exatamente isso.
>
>
>
> Cordialmente,
>
> --
> Fabrízio de Royes Mello
> >> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral