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 03-05-2006
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Post Sumar 1 Segundo A 'now'

Buenas tardes amigos:
Consultita simple la mia!
Les cuento, tengo este triger:
Código SQL [-]
AS
declare variable aux timestamp;
begin
  if ((old.autorizacion != new.autorizacion) or
     (old.fechavalidez != new.fechavalidez)) then
  begin
    select max(fechahorahasta) from autorizacion into :aux;
    if (:aux > 'NOW') then
    update autorizacion set fechahorahasta = 'NOW'
    where
    fechahorahasta = :aux;
    insert into AUTORIZACION (NRODEAUTORIZACION,FECHAHORADESDE,FECHAHORAHASTA)
    values (new.autorizacionsri,'NOW',new.fechavalidez);
  end
end
donde al ultimo 'NOW' quiero sumarle 1 segundo cuando hace el insert ...

Me pueden ayudar?

Última edición por vtdeleon fecha: 04-05-2006 a las 23:40:45.
Responder Con Cita
  #2  
Antiguo 04-05-2006
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Estuve investigando la cuestion. Les cuento que no he encontrado informacion asociada al tema en la documentacion de interbase, tampoco ningun sitio web donde se muestren ejemplos de operatorias con 'NOW' , por lo tanto calculo que mañana voy a cambiar la implementacion, debido a que evidentemente no hay nada concreto !

Un saludo a todos amigos!
Responder Con Cita
  #3  
Antiguo 05-05-2006
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Solo sumale 0.00002 a la fecha en cuestión y obtienes la fecha correspondiente al siguiente segundo, solo que para que el truco funcione debes hacer un cast primero para que Firebird interprete a 'NOW' como un valor TIMESTAMP; esta consulta te devuelve la fecha actual y la fecha un segundo despues en un mismo registro

Código SQL [-]
select cast('now' as TIMESTAMP), cast('now'  as TIMESTAMP) + 0.00002
from rdb$database

Saludos y hasta pronto
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #4  
Antiguo 05-05-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por lpmlpm
Solo sumale 0.00002 a la fecha en cuestión y obtienes la fecha correspondiente al siguiente segundo, solo que para que el truco funcione debes hacer un cast primero para que Firebird interprete a 'NOW' como un valor TIMESTAMP; esta consulta te devuelve la fecha actual y la fecha un segundo despues en un mismo registro

Código SQL [-]select cast('now' as TIMESTAMP), cast('now' as TIMESTAMP) + 0.00002 from rdb$database


Saludos y hasta pronto
¿ 0.00002 ?

En todo caso, 1/24horas/60minutos/60segundos
Porque si fuese 0.00002 * 60segundos * 60minutos * 24 horas = 1.728
Eso sería un día y casi 3/4
Responder Con Cita
  #5  
Antiguo 05-05-2006
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
cierto, en realidad lo unico que hice fue empezar a sumarle decimales y en el primero que me dió un segundo despues y que en mis pruebas funcionó fue el que puse, en realidad haciendo un redondeo del calculo que mencionas, sumando 0.000012 es suficiente para obtener el segundo inmediato superior, como quien pregunta no menciona que fuera a usar ese valor acarreado para posteriores cálculos supuse que no le afectaría en la manera en que mencionas...

Muy buena aclaración... Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
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
Programar en segundo plano Isako API de Windows 3 02-03-2005 14:31:20
Que se me active el segundo timer Nbull Varios 7 21-02-2005 17:17:02
sumarle 1 segundo a una variable de tiempo? click Varios 1 29-09-2004 21:47:32
Ayuda con Teclas en Segundo Plano Sundance Varios 12 29-08-2004 18:09:18
¿Cómo restar un segundo a un timestamp? Carlitos Firebird e Interbase 4 16-03-2004 21:36:23


La franja horaria es GMT +2. Ahora son las 10:19:51.


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