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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Como obtener la HORA al Restar minutos en campo TIME ????

Uso Firebird 1.5.5

Buen dia, he estado buscando por el foro y no se si soy malo para buscar ó ando mal de mi vista, pero No he encontrado la forma de Restartale a un campo time las horas, minutos ó segundos y determinar la hora en que queda, esto dentro de un Trigger ó procedimiento almacenado en Firebird, por ejemplo, quiero restarle un minuto al campo de las siguientes formas:

Ejemplo:
Si son las 8:10 am quiero restarle 1 minuto para que quede las 8:09 am

Código SQL [-]
  //Con esto marca error CONVERSION ERROR FROM STRING "34541.0000"
  New.Hora = New.Hora - Cast('00:01' as Time);
 
  Ó
 
  //Con esto marca error CONVERSION ERROR FROM STRING "34607.0000"
  New.Hora = Cast(New.Hora as Time) - Cast('00:01' as Time);

Agradezco cualquier sugerencia al respecto....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
  #2  
Antiguo 20-02-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Con FireBird 2.1 sería muy sencillo, asi:

Código SQL [-]
New.Hora = DATEADD(MINUTE, -1, New.Hora);

Pero con FireBird 1.5.5, se me ocurre lo siguiente, aunque no lo he probado seguramente funciona debido a que el campo es de tipo Time:

Código SQL [-]
New.Hora = New.Hora - 1;

Si lo anterior no funciona, prueba con lo siguiente:

Código SQL [-]
New.Hora = New.Hora - 0.1;

Espero que alguna de estas opciones te sirva .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 20-02-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Cita:
Empezado por jhonny Ver Mensaje
Con FireBird 2.1 sería muy sencillo, asi:


Código SQL [-]
New.Hora = DATEADD(MINUTE, -1, New.Hora);

Pero con FireBird 1.5.5, se me ocurre lo siguiente, aunque no lo he probado seguramente funciona debido a que el campo es de tipo Time:


Código SQL [-]
New.Hora = New.Hora - 1;

Si lo anterior no funciona, prueba con lo siguiente:

Código SQL [-]
New.Hora = New.Hora - 0.1;

Espero que alguna de estas opciones te sirva .
Ya probe con las ultimas 2 opciones y no hace nada, no resta ni minutos, ni segundos , y no puedo usar la 1era porque uso firebird 1.5.5, tengo problemas con varios trigger's para actualizarme a la version 2, espero pronto darme el tiempo para dar ese brinco.... gracias por su ayuda....
__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King

Última edición por AGAG4 fecha: 20-02-2008 a las 18:47:54. Razón: Corrección
Responder Con Cita
  #4  
Antiguo 20-02-2008
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Ya encontre la forma de restarle los minutos, tienes que restarle los 60 segundos del minuto, quedaría asi :

Código SQL [-]
  //Restar 1 minuto
  New.Hora = New.Hora - 60;
 
  //Restar 2 minutos
  New.Hora = New.Hora - 120;
 
  //Y asi sucesivamente

__________________
"Hemos aprendido a volar como los Pájaros, y a nadar como los Peces, y todavía No aprendemos a vivir como Hermanos". Martin Luther King
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como obtener la hora actual? gabrielflowers PHP 3 19-10-2007 22:48:20
restar horas, minutos en access alfil123 Conexión con bases de datos 6 23-04-2007 03:36:06
Problema maskedit en formato hora:minutos VRO Varios 3 22-07-2005 10:37:51
sumar 15 minutos a una hora leida de una tabla xbisont OOP 3 10-12-2003 17:53:39
sumar 15 minutos a una hora leida de una tabla xbisont C++ Builder 1 30-11-2003 23:13:24


La franja horaria es GMT +2. Ahora son las 07:39:32.


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