[firebase-br] Trabalhando com Hora em quantidade
Leonardo Vinicius Freitag
freitagnx em gmail.com
Ter Set 23 21:56:24 -03 2008
Pessoal!
Fiz uma série de testes e acho que encontrei uma forma de fazer pelo banco
de dados, segue o código que utilizei em um procedure pra ver se funcionava:
CREATE PROCEDURE TESTA_HORA (
IQUANTIDADE NUMERIC(15,3),
CT_VLR_EQUIV NUMERIC(15, 2))
RETURNS (
OQUANTIDADE NUMERIC(15,2),
V_QTDE_TEXTO VARCHAR(20),
V_HORA time,
v_horas numeric(15, 2),
V_MINUTOS NUMERIC(15, 2),
V_HORA_CONVERTIDA NUMERIC(15, 2))
AS
begin
oquantidade = :iquantidade;
v_qtde_texto = cast(:oQUANTIDADE as varchar(20));
v_hora = cast(:v_qtde_texto as TIME); /* ADICIONADO */
v_minutos = cast(extract(minute from :v_hora) as numeric(15, 2));
v_horas = cast(extract(hour from :v_hora) as numeric(15, 2));
v_hora_convertida = :v_minutos / :ct_vlr_equiv;
OQUANTIDADE = :V_HORA_CONVERTIDA + :v_horas;
suspend;
end
Está meio baguçado, mas acho que dah pra entender a lógica.
Abraço a todos.
Leonardo
2008/9/23 Leonardo Vinicius Freitag <freitagnx em gmail.com>
> Blz pessoal, obrigado pelas dicas...
>
> 2008/9/23 Eduardo Pelizzari de Andrade <eduardoandrade em persoft.com.br>
>
> Acerte isso no programa e já envie para o banco correto é mais fácil.
>> Você pode receber em campos separados ou se for receber no mesmo campo
>> pode calcular tipo:
>>
>> horacerta = int(hora) + ( (((hora -int(hora))*100) / 60)
>>
>> Eduardo Pelizzari de Andrade
>> Persoft Softwares Aplicativos
>>
>>
>>
>>
>> Leonardo Vinicius Freitag escreveu:
>> > Olá pessoal!
>> >
>> > Estou com o seguinte problema, e entendo talvez ser simples a solução,
>> mas
>> > confesso que estou apanhando.
>> > Tenho um banco de dados onde um cliente precisa lançar horas de boliche
>> num
>> > campo numeric(15, 2) e que o sistema entenda como hora.
>> > Então se o cliente quiser lançar 1h e 30min ele lançaria 1,3 na
>> quantidade,
>> > ao invés de 1,5.
>> > O máximo que consegui foi converter 1,3 pra 01:30:00 num trigger, mas
>> agora
>> > quero fazer o firebird entender que isso significa 1,5 e multiplique
>> pelo
>> > valor da hora boliche dando o total.
>> >
>> > Alguém pode me ajudar.
>> >
>> >
>> > Leonardo Vinicius Freitag
>> > ______________________________________________
>> > 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
>> > ------------------------------------------------------------------------
>> >
>> >
>> > No virus found in this incoming message.
>> > Checked by AVG - http://www.avg.com
>> > Version: 8.0.169 / Virus Database: 270.7.1/1686 - Release Date:
>> 23/09/2008 07:38
>> >
>> >
>>
>> ______________________________________________
>> 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
>>
>
>
Mais detalhes sobre a lista de discussão lista