[firebase-br] SP Fracionando hora

Marcelo Moreira marcelomoreira.souza em gmail.com
Ter Set 22 15:57:10 -03 2009


Gustavo,
Boa tarde!

Cara muito obrigado pelo exemplo que voce enviou pois ele funcionou
perfeitamente.

Muito obrigado mesmo ajudou D+.

Abraços!!!

2009/9/18 Gustavo Moda <gustavo.moda em gmail.com>

> Olá,
>
> Sim é possível, campos TIME, TIMESTAMP podem ser somados segundos.
> Abaixo um exemplo.
>
> execute block
> returns (
>   tarefa integer,
>   hora_inicial_tarefa time,
>   hora_final_tarefa time,
>   total_tarefas integer,
>   segundos float ,
>   segundos_cada_tarefa float
> )
> as
> declare variable numero_tarefas integer;
> declare variable hora_inicial time;
> declare variable hora_final time;
> begin
>    -- pode ser passado por parametro na SP ou ler do banco
>    hora_inicial = '08:00:00'; -- hora inciial de trabalho
>    hora_final = '08:10:00'; -- prazo final
>    total_tarefas = 10;
>
>
>    -- calcular a quantidade de segundos que temos para realizar a rterefa
>    segundos = hora_final - hora_inicial;
>
>    -- ver o percentual que cada tarefa vai usar.
>    numero_tarefas = total_tarefas -1 ; -- faz necessário, pq a hora inicial
> é usada para a primeira tarefa
>    if (numero_tarefas < 1) then numero_tarefas  = 1; -- previnindo divisão
> por zero
>    segundos_cada_tarefa = segundos / cast( numero_tarefas as float) ;
>
>
>    -- calculando
>    tarefa =1;
>    hora_inicial_tarefa = hora_inicial;
>    hora_final_tarefa = hora_inicial;
>    while (1=1)
>    do begin
>        if (tarefa > total_tarefas) then leave;
>        hora_final_tarefa = hora_final_tarefa + segundos_cada_tarefa;
>        suspend;
>        hora_inicial_tarefa = hora_inicial_tarefa + segundos_cada_tarefa;
>        tarefa = tarefa + 1;
>    end
>
> end
>
>
>
> 2009/9/17 Marcelo Moreira <marcelomoreira.souza em gmail.com>
>
> > Pessoal,
> > Boa tarde!
> >
> > Trabalhando com o Firebird 2.1 tenho um cadastro de tarefas onde tenho um
> > campo HORA do tipo TIME onde informo o horario que a tarefa deve ser
> > executada. O que acontece é que sempre eu cadastro varias tarefas ao
> mesmo
> > tempo e o que eu preciso é distriubir o horario de execução de cada
> tarefa
> > em um intervalo de horario.
> > Vou tentar explicar: Preciso fazer o cadastro de 10 tarefas e o horio
> para
> > distribuicao destas tarefas vai ser de 08:00 ate as 08:10. O que o
> sistema
> > precisa fazer neste caso entao é cadastrar as tarefas com os seguintes
> > horarios:
> > 08:00 - 08:01 - 08:02 - 08:03 - 08:04 - 08:05 - 08:06 - 08:07 - 08:08 -
> > 08:09
> > Ou seja ele cadastrou uma tarefa a cada minuto uma vez que eram 10
> tarefas
> > no intervalo de 10 minutos
> > O que eu tenho certeza que vai acontecer é o sistema ter de cadastrar por
> > exemplo 1000 tarefas em um intervalo de 60 minutos.
> >
> >
> > Minha duvida é: Usando uma SP é possivel fazer o que eu preciso?
> > Se sim alguem pode me indicar o caminho?
> >
> > Muito obrigado pela atenção!
> >
> > Abs.
> >
> > --
> > Marcelo Moreira
> > (31) 8420-2723
> > E-mail / MSN: marcelomoreira.souza em hotmail.com
> > E-mail: marcelomoreira.souza em gmail.com
> > Skype: marcelomoreira.souza
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza



Mais detalhes sobre a lista de discussão lista