Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   minutos entre dos fechas (https://www.clubdelphi.com/foros/showthread.php?t=20433)

jmlifi 15-04-2005 09:48:04

minutos entre dos fechas
 
Utilizo interbase, y quiero que una consulta sql me devuelva los minutos que hay entre dos campos fecha.
tengo:
campo horainicio : 01/01/2005 12:12:00
campo horafin : 01/02/2005 16:30:12

Investment 15-04-2005 10:28:05

Datediff
 
En Intebase creo que la funcion es
DATEDIFF(datepart, startdate, enddate)



En SQL SERVER:


Código:

DATEDIFF ( datepart , startdate , enddate )

Select DATEDIFF(mi, '1/1/2005 10:00:00' , '1/1/2005 10:06:00' ) as numero_minutos


jmlifi 15-04-2005 11:07:04

No funciona
 
No funciona.Tengo interbase 5.0

Rufus 15-04-2005 12:39:36

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


La franja horaria es GMT +2. Ahora son las 08:09:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi