PDA

Ver la Versión Completa : UDF que devuelva dia de la semana


gendelphi
04-03-2004, 08:23:15
Hola a todos :)

Alguien de ustedes sabe si exista alguna función UDF que permita obtener el dia de la semana en como un numero entero correspondiente a una fecha, por ejemplo:

domigo --> 1
lunes --> 2
martes --> 3
.....
etc

He intentado usando DOW y SDOW pero me devuelven el dia en formato de cadena y al parecer depende del idioma del SO porque por ejemplo si es dia sabado, me lo devuelbe con acento: "sábado", yo los necesito para comparararlos y si dependen del SO mi comparacion puedo no llevarse a cabo correctamente por razones del idioma, es por eso que me interesa que sea en formato numerico.

Gracias de antemano. ;)

abel
04-03-2004, 09:32:57
Hola:

Puedes hacerlo con procedimientos almacenados, prueba con esto:

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:


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.

gendelphi
04-03-2004, 09:53:09
!! GRACIAS !! Por tu pronta respuesta, lo voy a checar.

Saludos desde México

teletranx
05-03-2004, 15:30:27
El dll FreeUdfLib.dll tiene la función f_dayofweek() que te entreda el día de la semana, y otras funciones


Saludos:D