Muito obrigado.
Não conhecia ainda o EPOCH.

Valeu mesmo =)



--!  *Dilson*




2012/7/23 Matheus de Oliveira <[email protected]>

>
>
>
>
> 2012/7/23 Dilson Tomé <[email protected]>
>
>> Boa tarde Srs(as).
>>
>> Estou com uma questão que não consigo solucionar.
>>
>> Segue a tabela:
>>
>>   Table "public.horarios"
>>
>>  *Column* *Type* *Modifiers*  entrada0 time without time zone    saida0 time
>> without time zone    entrada1 time without time zone    saida1 time
>> without time zone
>>
>> Segue minha query para pegar o total de horas:
>>
>> SELECT TO_CHAR(((saida0::TIME - entrada0::TIME)+(saida1::TIME -
>> entrada1::TIME)), 'HH24:MI:SS') from horarios;
>>   *to_char*  07:45:05
>>
>>
>> Gostaria de uma forma de multiplicar esse resultado por um númeor
>> inteiro, por exemplio: 07:45:05 * 50.
>> E retornar um valor inteiro, logicamente.
>>
>> Existe essa possibilidate?
>>
>
>
> Sim, e vai depender da unidade que você espera, usando o EXTRACT(EPOCH
> FROM <interval>), sendo <interval> um tipo de dados INTERVAL, você vai
> obter a quantidade de segundos daquele intervalo de tempo.
>
> Exemplo:
>
> SELECT TO_CHAR(((saida0::TIME - entrada0::TIME)+(saida1::TIME -
> entrada1::TIME)), 'HH24:MI:SS'),
> EXTRACT(EPOCH FROM ((saida0::TIME - entrada0::TIME)+(saida1::TIME -
> entrada1::TIME))) * 50
> FROM horarios;
>
> Te daria o resultado em segundos * 50. Se quiser em horas, é só dividir
> por 3600:
>
> SELECT TO_CHAR(((saida0::TIME - entrada0::TIME)+(saida1::TIME -
> entrada1::TIME)), 'HH24:MI:SS'),
> (EXTRACT(EPOCH FROM ((saida0::TIME - entrada0::TIME)+(saida1::TIME -
> entrada1::TIME))) / 3600.0) * 50
> FROM horarios;
>
> Atenciosamente,
> --
> Matheus de Oliveira
>
>
> _______________________________________________
> 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

Responder a