Hola:
Puedes hacerlo con procedimientos almacenados, prueba con esto:
Código:
CREATE PROCEDURE PA_EXTRAEDIASEMANA (
ADATE DATE)
RETURNS (
RESULT INTEGER)
AS
DECLARE VARIABLE ELAPSED INTEGER;
DECLARE VARIABLE TEMP INTEGER;
BEGIN
Elapsed = ADate - "1.1.96";
EXECUTE PROCEDURE PA_ObtieneResto(Elapsed, 7) RETURNING_VALUES temp;
RESULT = CAST(temp as INTEGER);
END
y este otro:
Código:
CREATE PROCEDURE PA_OBTIENERESTO (
DIVIDEND DOUBLE PRECISION,
DIVISOR DOUBLE PRECISION)
RETURNS (
RESULT DOUBLE PRECISION)
AS
BEGIN
IF(Dividend = 0) THEN Result = 0;
ELSE
Result = Dividend-(CAST((Dividend / Divisor)-0.5 AS INTEGER)*Divisor);
END
Te devuelve: 0->lunes, 1->martes, etc.
Saludos.