SQL Server - Ayuda con Update

 
Vista:

Ayuda con Update

Publicado por Monica Wildmon (1 intervención) el 10/03/2016 22:57:17
Buen dia a todos.

Tengo un pequeño problema y necesito de su ayudita y pasa lo siguiente.

Tengo una tabla llamada EMPLEADOS en ella hay un campo llamado ESTADO en el que puedo activar o desactivar a los empleados que yo escoja, para realizar la activacion de un determinado empleado se necesita conocer la FECHA en la se debera activa el empleado, esta fecha debe indicarse antes en el campo FECHA_ACTIVACION y que por medio de un Job se haga la activacion sin necesidad de mi intervencion, lo que tengo es muy poco y agradeceria de su ayuda.

Tabla: Empleados.
Campo: Codigo, Nombre, Estado, Fecha_Activacion. (Version - SQL Server 2012).

Update Empleados
Set Estado = 'Activo'
Where Fecha_Activacion = Getdate()

Pongo Getdate() por que la activacion debe realizarce cuando el campo Fecha_Activacion llegue a la fecha programada creo que Getdate() no funciona con Update pero ahi es donde necesito de su valiosa ayuda.

Mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Ayuda con Update

Publicado por Isaias (4558 intervenciones) el 11/03/2016 16:30:01
Monica

Esto ya lo habias preguntado y personalmente te hice la recomendación que lo hicieras mediante un JOB

¿Cuál es el problema?

Que estas comparando la fecha con IGUAL y NUNCA, JAMAS va a coincidir con el GETDATE(), ya que trae, horas, minutos, segundos, etc.

¿Cómo debe ser entonces?

Si la quieres comparar con = (que no lo recomiendo):

WHERE myfecha = convert(char(8), getdate(), 112) -- formato yyyymmdd, desconozco si tu campo, trae la fecha con hh, mi, ss, etc.

de ser así, tendrías que convertir también tu campo y ahí viene le problema, el plan de ejecución NO utilizaría los índices.

https://msdn.microsoft.com/es-es/library/ms187928(v=sql.120).aspx

Si lo quieres comparar (como debe ser) con >= o <=

WHERE myfecha >= getdate()
WHERE myfecha <= getdate()

¿De acuerdo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar