Gerar Hora Aleatória dentro de um intervalo
Boa noite,
Preciso gerar uma hora aleatória entre a hora de entrada de um comprovante e 23:59:59. A função que fiz está gerando um monte de horas '00:00:00' e maiores que 23:59:59, como 35:00:00: 29:00:00. Não tenho ideia do pq disso estar acontecendo.
delimiter $
create procedure InsereDadosRecibo(idcomp int)
begin
declare vDataEntrada date;
declare vHoraEntrada, vHoraSaida time;
declare vIDCat int;
declare vPlacacar varchar(45);
declare vTaxaHoraria double;
select Comprovante.DataEntrada,Comprovante.HoraEntrada,
Comprovante.HoraEntrada + floor(time_to_sec(Comprovante.HoraEntrada) + (rand()*(86400-time_to_sec(Comprovante.HoraEntrada)))),
Comprovante.IDCategoria,
Comprovante.PlacaCarro
into vDataEntrada,vHoraEntrada,vHoraSaida,vIDCat,vPlacacar
from Comprovante where Comprovante.IDComprovante = idcomp;
select Categoria.TaxaHoraria
into vTaxaHoraria from Categoria where Categoria.IDCategoria = vIDCat;
insert into estacionamento.Recibo(DataEntrada,HoraEntrada,HoraSaida,IDCategoria,Placacarro,ValorPago)
values(vDataEntrada, vHoraEntrada, vHoraSaida ,vIDCat, vPlacaCar,(((time_to_sec(vHoraSaida)-time_to_sec(vHoraEntrada))/60)/30)*vTaxaHoraria);end
$
86400 é 24 horas em segundos. Alguém poderia me ajudar? Obrigada!
Discussão (1)
Carregando comentários...