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