Ver Mensaje Individual
  #8  
Antiguo 07-05-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 22
andres1569 Va por buen camino
Hola:

Vaya por delante que este truco debe cogerse con alfileres y que seguramente no funcione en todos los casos (me refiero a diferentes SGDB por la forma de almacenar los campos Date). Lo acabo de probar en una tabla Paradox, sobre un campo definido como Date y sí funciona.

Lo de "Capability not supported" está bastante claro. El local SQL no contempla la instrucción WEEKDAY.

La sentencia SQL sería así:

Código:
SELECT *
FROM TABLAS
WHERE 7 - (("12/29/2080" - CAMPOFECHA) -
       CAST ((("12/29/2080" - CAMPOFECHA) / 7) AS INTEGER) * 7) = :DiaSemana

El 29 de diciembre de 2080 es una fecha conocida que cae en domingo, creo que aprovecha hasta que nadie te pueda pedir explicaciones por un fallo en tu programa.

El parámetro iaSemana es de tipo Integer y es el que tendremos que asignar cada vez, teniendo en cuenta la tabla siguiente:

Lunes = 1
Martes = 2
...
Domingo = 7

De esta forma, dependiendo del día que quieras sólo tienes que asignarle el valor. Lo de dividir por 7 y convertir a integer, y luego multiplicar por 7 es una forma rudimentaria de hallar el resto (función MOD en Delphi).

Bueno, un saludo y a ver si te sirve
Responder Con Cita