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
