Em 13 de fevereiro de 2010 18:49, Marcelo Ribeiro
<[email protected]> escreveu:
> Pessoal,
>
> Parecia uma coisa fácil, mas pelo amor de Deus que dificuldade...
>
> Tenho uma table com uma coluna chamada HR_TEMPO (do tipo Char), eu
> guardo nessa coluna o tempo limite de uma atividade, exemplo 72:00:00,
> ou seja, 3 dias, ok?
Faça a conversão de sua cadeia de caracteres para o tipo de dados "interval" [1]
>
> Bom, o primeiro desafio é converter essa 72:00:00 para "3 Dias
> 00:00:00"
bdteste=# SELECT justify_hours(cast('72:00:00' as interval));
justify_hours
---------------
3 days
(1 registro)
> e o segundo desafio é subtrair qualquer tempo dessa mesma
> coluna, exemplo: Tenho uma coluna HR_TEMPO_DECORRIDO que guardo o
> tempo decorrido de uma atividade, ou seja, faço o seguinte HR_TEMPO -
> HR_TEMPO_DECORRIDO mas é claro, dá erro, alguém saberia como poderia
> fazer?
>
> Trabalhar com cálculo de horas é sempre muito difícil.
Engano seu, trabalhar com cálculo de horas *não* é difícil *se* você
utiliza os tipos de dados corretos.
Por ex. se suas colunas contém tempo da atividade porque usar o tipo
char? Use os tipos time ou interval (este me parece o mais adequado).
[2]
Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/datatype-datetime.html
[2] http://www.postgresql.org/docs/current/interactive/functions-datetime.html
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral