GETDATE() en Trigger Instead of

23/01/2008 - 10:12 por Juan Diego Bueno | Informe spam
Hola gente:

Estoy realizando un trigger instead of sobre una vista el cual realiza
modificaciones sobre unas tablas en función de dicha vista. El trigger
funciona perfectamente excepto en un aspecto. Si el campo FECHA_INS (de
fecha de inserción) en la vista es nulo, debe tomar la fecha del
sistema con GETDATE (también he probado con CURRENT_TIMESTAMP). He
probado tanto con ISNULL como con COALESCE e incluso haciendo un CAST a
smalldatetime. El tema es que al hacer la inserción con esa fecha en
NULL, lo hace correctamente excepto en que los segundos los pone a 0.
Por ejemplo, si la inserción se hace el día de hoy a las 10:11:12 en el
registro aparece 10:11:00. La verdad que es un problema menor puesto
que supongo que no afecte en posteriores procesos, pero me parece
curioso, y aún no he encontrado solución.

¿Alguna idea o explicacion?

http://www.moondance.tk

Preguntas similare

Leer las respuestas

#1 Carlos M. Calvelo
23/01/2008 - 14:05 | Informe spam
Hola Diego,


On 23 jan, 10:12, Juan Diego Bueno
wrote:
Hola gente:

Estoy realizando un trigger instead of sobre una vista el cual realiza
modificaciones sobre unas tablas en función de dicha vista. El trigger
funciona perfectamente excepto en un aspecto. Si el campo FECHA_INS (de
fecha de inserción) en la vista es nulo, debe tomar la fecha del
sistema con GETDATE (también he probado con CURRENT_TIMESTAMP). He
probado tanto con ISNULL como con COALESCE e incluso haciendo un CAST a
smalldatetime. El tema es que al hacer la inserción con esa fecha en
NULL, lo hace correctamente excepto en que los segundos los pone a 0.
Por ejemplo, si la inserción se hace el día de hoy a las 10:11:12 en el
registro aparece 10:11:00. La verdad que es un problema menor puesto
que supongo que no afecte en posteriores procesos, pero me parece
curioso, y aún no he encontrado solución.

¿Alguna idea o explicacion?




El tipo smalldatetime solo guarda hasta los minutos.

Prueba:

declare @d1 datetime
declare @d2 smalldatetime
set @d1 = getdate()
set @d2 = @d1
select @d1,@d2

Me dá que tu columna tendría que ser datetime en vez de
smalldatetime. Y sobre todo mira en la ayuda ;-)

Saludos,
Carlos
Respuesta Responder a este mensaje
#2 Juan Diego Bueno
23/01/2008 - 15:44 | Informe spam
El 23/01/2008, Carlos M. Calvelo ha supuesto :
Hola Diego,


On 23 jan, 10:12, Juan Diego Bueno
wrote:
Hola gente:

Estoy realizando un trigger instead of sobre una vista el cual realiza
modificaciones sobre unas tablas en función de dicha vista. El trigger
funciona perfectamente excepto en un aspecto. Si el campo FECHA_INS (de
fecha de inserción) en la vista es nulo, debe tomar la fecha del
sistema con GETDATE (también he probado con CURRENT_TIMESTAMP). He
probado tanto con ISNULL como con COALESCE e incluso haciendo un CAST a
smalldatetime. El tema es que al hacer la inserción con esa fecha en
NULL, lo hace correctamente excepto en que los segundos los pone a 0.
Por ejemplo, si la inserción se hace el día de hoy a las 10:11:12 en el
registro aparece 10:11:00. La verdad que es un problema menor puesto
que supongo que no afecte en posteriores procesos, pero me parece
curioso, y aún no he encontrado solución.

¿Alguna idea o explicacion?




El tipo smalldatetime solo guarda hasta los minutos.

Prueba:

declare @d1 datetime
declare @d2 smalldatetime
set @d1 = getdate()
set @d2 = @d1
select @d1,@d2

Me dá que tu columna tendría que ser datetime en vez de
smalldatetime. Y sobre todo mira en la ayuda ;-)

Saludos,
Carlos



Vaya pifia...

Te puedo jurar que en algún sitio me había parecido leer que la
precisión de smalldatetime era de 1 segundo y no de 1 minuto (es decir,
que prescindía de los milisegundos...), de ahí mi tremenda confusión (y
que por supuesto, no mirara en la ayuda ;) )

Muchas gracias por sacarme del error (mejor dicho, horror)

Saludos

http://www.moondance.tk
Respuesta Responder a este mensaje
#3 Eduardo Castro
23/01/2008 - 15:46 | Informe spam
Es el tipo de dato puedes probar con con DateTime o mejor con TimeStamp

Slds

Eduardo Castro
Costa Rica

"Juan Diego Bueno" wrote in message
news:
Hola gente:

Estoy realizando un trigger instead of sobre una vista el cual realiza
modificaciones sobre unas tablas en función de dicha vista. El trigger
funciona perfectamente excepto en un aspecto. Si el campo FECHA_INS (de
fecha de inserción) en la vista es nulo, debe tomar la fecha del sistema
con GETDATE (también he probado con CURRENT_TIMESTAMP). He probado tanto
con ISNULL como con COALESCE e incluso haciendo un CAST a smalldatetime.
El tema es que al hacer la inserción con esa fecha en NULL, lo hace
correctamente excepto en que los segundos los pone a 0. Por ejemplo, si la
inserción se hace el día de hoy a las 10:11:12 en el registro aparece
10:11:00. La verdad que es un problema menor puesto que supongo que no
afecte en posteriores procesos, pero me parece curioso, y aún no he
encontrado solución.

¿Alguna idea o explicacion?

http://www.moondance.tk


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida