2009/7/27 sergio nogueira <[email protected]>:
> 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' ...

O resultado sempre será numérico. Na maioria dos casos o resultado é
um inteiro mas, pelo menos para um caso, pode ser um número real:

SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');
Result: 28.5

http://www.postgresql.org/docs/current/interactive/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT


>
> Tá na mão do sinhô no que esta transformação pode resultar (de float8 para
> smallint). Mas eu teho fé.
>

Para seuvcaso (ano) sempre estará certo.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a