FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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
__________________
Saludos, Peter Investment |
#3
|
|||
|
|||
No funciona
No funciona.Tengo interbase 5.0
|
#4
|
||||
|
||||
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: Un saludo
__________________
Milo Última edición por Rufus fecha: 15-04-2005 a las 12:48:05. |
|
|
|