Ver Mensaje Individual
  #4  
Antiguo 15-04-2005
Avatar de Rufus
Rufus Rufus is offline
Miembro
 
Registrado: may 2004
Ubicación: Canarias
Posts: 193
Reputación: 20
Rufus Va por buen camino
Como utilizas Interbase 5, su dialecto SQL es el 1 y por tanto su tipo de datos es el TIMESTAMP del dialecto 3. DATE dialecto 1 = TIMESTAMP dialecto 3.

Segun mi manual de FIrebird, en la operacion TIMESTAMP - TIMESTAMP se obtiene como resultado un tipo DECIMAL(18,9) donde se guardan los dias y porciones de dias entre las dos fechas.

Es decir, que si restas dos fechas y han pasado 6 horas, supongamos, te devolvera 0.25, que es la porción de día que ha pasado entre ambas. Entonces lo que hemos de hacer es multiplicar * 1440, ya que éstos son los minutos que tiene un dia (24 horas * 60 minutos). En nuestro ejemplo, si multiplicamos 0.25 *1440 nos da 360, que es justo lo que estamos buscando, los minutos.

Asi pues, resta ambas fechas y multiplica el resultado por 1440. Esto lo estoy diciendo de teoria y con el libro "Firebird Book" de Helen Borrie en la mano, no lo estoy comprobando, pero supongo que estara bien.

Entonces la consulta sera asi:
Código SQL [-]
select (horafin-horainicio) * 1440 from tabla where ...
Un saludo
__________________
Milo

Última edición por Rufus fecha: 15-04-2005 a las 12:48:05.
Responder Con Cita