Muito obrigado Luiz pela ajuda. Eis a função que fiz :

 

CREATE OR REPLACE FUNCTION Categoria_Dia(data date) RETURNS character 
varying(10) AS

$BODY$

DECLARE

dia integer;

resultado character varying(10);

BEGIN

 

dia = extract(dow from data);

 

if resultado = 0 then -- se o dia for um domingo

resultado = 'DOMINGO';

elseif resultado = 6 then -- se o dia for um sabado

resultado = 'SABADO';

elseif EXISTS (SELECT * FROM "FERIADOS" AS X WHERE X.data = data) then -- se o 
dia for um feriado

resultado = 'FERIADO';

else -- trata-se de um dia útil

resultado = 'DIA UTIL';

end if;

 

return resultado;

 

END; $BODY$ 

language 'plpgsql';

 

SELECT Categoria_Dia(CURRENT_DATE);

 

Existe a tabela Feriados que tem a relação dos feriados do ano:

 

CREATE TABLE "FERIADOS"

(

  data date NOT NULL,

  descricao character varying(50) NOT NULL,

  CONSTRAINT "pk-feriados" PRIMARY KEY (data, descricao)

)

 

Um grande abraço a todos. Att.

 

Newton Teixeira do Nascimento Junior

Analista de Sistemas - CMAO

Centrais Elétricas do Norte do Brasil S/A - Eletronorte
Av. dos Jequitibás, s/nº - Cohebe do Sacavém
São Luís-MA - 65043-380

Tel: 3217-5006 / 81330104
e-mail: [email protected]

 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a