Retornar quantidade de dias SQL
Boa Tarde pessoal,
to com um probleminha para retornar numa rotina com SQL a quantidade de dias entre duas data. Alguem poderia me dar uma dica para algum tipo de função?
Antecipadamente, obrigado.
Sanzio F. C. Amora
InforPlay Informatica
to com um probleminha para retornar numa rotina com SQL a quantidade de dias entre duas data. Alguem poderia me dar uma dica para algum tipo de função?
Antecipadamente, obrigado.
Sanzio F. C. Amora
InforPlay Informatica
Sanzio
Curtidas 0
Respostas
Julianaleme
25/10/2004
[b:c454f7a663]entaum eu tenho uma função para isso ...
Foi feita para o oracle , mas qq coisa vc adapta ela para o seu banco , ta bom ?
Ai vai:
CREATE OR REPLACE FUNCTION FN_CALCDIFFDIAS(P_DATAINI CHAR,
P_DATAINIFOR CHAR,
P_DATAFIM CHAR,
P_DATAFIMFOR CHAR) RETURN STRING
IS
VT_DIFF NUMBER; -- DIFERENCA TOTAL
VT_DIFH NUMBER; -- FACAO DE HORAS E MINUTOS DA DIFERENCA
VT_DIFDIAS INTEGER;
VT_RETORNO CHAR(20);
BEGIN
VT_DIFF := TO_DATE(P_DATAFIM,P_DATAFIMFOR)-TO_DATE(P_DATAINI,P_DATAINIFOR);
VT_DIFDIAS := TRUNC(VT_DIFF);
VT_DIFH := VT_DIFF - VT_DIFDIAS;
IF VT_DIFDIAS = 1 THEN
VT_RETORNO := ´01 Dia´;
ELSE
VT_RETORNO := TO_CHAR(VT_DIFDIAS,´00´)||´ Dias´;
END IF;
IF VT_RETORNO = ´:´ THEN
VT_RETORNO := NULL;
END IF;
RETURN VT_RETORNO;
END;
/
SHOW ERRORS FUNCTION FN_CALCDIFFDIAS;
bem ai esta , ta bom ...
Qualquer coisa é só me mandar uma mensagem particular , ok ...
Bjos[/b:c454f7a663]
Foi feita para o oracle , mas qq coisa vc adapta ela para o seu banco , ta bom ?
Ai vai:
CREATE OR REPLACE FUNCTION FN_CALCDIFFDIAS(P_DATAINI CHAR,
P_DATAINIFOR CHAR,
P_DATAFIM CHAR,
P_DATAFIMFOR CHAR) RETURN STRING
IS
VT_DIFF NUMBER; -- DIFERENCA TOTAL
VT_DIFH NUMBER; -- FACAO DE HORAS E MINUTOS DA DIFERENCA
VT_DIFDIAS INTEGER;
VT_RETORNO CHAR(20);
BEGIN
VT_DIFF := TO_DATE(P_DATAFIM,P_DATAFIMFOR)-TO_DATE(P_DATAINI,P_DATAINIFOR);
VT_DIFDIAS := TRUNC(VT_DIFF);
VT_DIFH := VT_DIFF - VT_DIFDIAS;
IF VT_DIFDIAS = 1 THEN
VT_RETORNO := ´01 Dia´;
ELSE
VT_RETORNO := TO_CHAR(VT_DIFDIAS,´00´)||´ Dias´;
END IF;
IF VT_RETORNO = ´:´ THEN
VT_RETORNO := NULL;
END IF;
RETURN VT_RETORNO;
END;
/
SHOW ERRORS FUNCTION FN_CALCDIFFDIAS;
bem ai esta , ta bom ...
Qualquer coisa é só me mandar uma mensagem particular , ok ...
Bjos[/b:c454f7a663]
GOSTEI 0