Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/03/2004, 11:23
Teri
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años, 9 meses
Puntos: 0
Hola... la solución que has obtenido es un tanto engañosa, no siempre te va a funciionar

Después de probar creo que tengo lo que necesitas, aunque es un poco liosa

SELECT FechaAlta,
convert(datetime, convert(varchar(4), Year(Getdate())) + '-' +
convert(varchar(2), Month(FechaAlta)) + '-' +
convert(varchar(2), Day(FechaAlta)))AS FF
FROM Empleados
WHERE
convert(datetime, convert(varchar(4), Year(Getdate())) + '-' +
convert(varchar(2), Month(FechaAlta)) + '-' +
convert(varchar(2), Day(FechaAlta))) BETWEEN


(case WHEN datepart(dw, GetDate()) = 1 THEN
GetDate() - 6
ELSE
GetDate() - (datepart(dw, GetDate()) - 2) END) AND
(case WHEN datepart(dw, GetDate()) = 1 THEN
GetDate()
ELSE
GetDate() + (8 - datepart(dw, GetDate())) END)

JEJE

En este caso, lo que hago es saber cuando un empleado cumple años en la empresa, cambia FecAlta por FechaNacimiento y listo.

El motivo de que sea tan enrevesada, es porque el puñetero SQL se empeña en tener como día uno de la semana el domingo, en fin... supongo que se puede mejorar, (seguro que es mejorable)

Un saludo y espero que te sirva de ayuda