Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2005
jmlifi jmlifi is offline
Miembro
 
Registrado: abr 2005
Posts: 188
Poder: 19
jmlifi Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 15-04-2005
Avatar de Investment
Investment Investment is offline
Miembro
 
Registrado: may 2003
Posts: 378
Poder: 21
Investment Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 15-04-2005
jmlifi jmlifi is offline
Miembro
 
Registrado: abr 2005
Posts: 188
Poder: 19
jmlifi Va por buen camino
No funciona

No funciona.Tengo interbase 5.0
Responder Con Cita
  #4  
Antiguo 15-04-2005
Avatar de Rufus
Rufus Rufus is offline
Miembro
 
Registrado: may 2004
Ubicación: Canarias
Posts: 193
Poder: 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 13:48:05.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:07:33.


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
Copyright 1996-2007 Club Delphi