CREATE OR REPLACE FUNCTION dia_da_semana_corrente()
 RETURNS "varchar" AS
$BODY$
DECLARE
vRET varchar;
BEGIN
SELECT CASE WHEN TO_CHAR(CURRENT_DATE, 'D') = 1 THEN 'Domingo'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 2 THEN 'Segunda-Feira'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 3 THEN 'Terça-Feira'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 4 THEN 'Quarta-Feira'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 5 THEN 'Quinta-Feira'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 6 THEN 'Sexta-Feira'
WHEN TO_CHAR(CURRENT_DATE, 'D') = 7 THEN 'Sábado'
END AS DIA_DA_SEMANA into vRET;
return vRET;
end
$BODY$
 LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION dia_da_semana_corrente() OWNER TO pgsql;

*USO: select dia_da_semana_corrente();
*

CREATE OR REPLACE FUNCTION dia_da_semana(date)
 RETURNS "varchar" AS
$BODY$
DECLARE
pDATA ALIAS FOR $1;
vRET varchar;
BEGIN
SELECT CASE WHEN TO_CHAR(pDATA, 'D') = 1 THEN 'Domingo'
WHEN TO_CHAR(pDATA, 'D') = 2 THEN 'Segunda-Feira'
WHEN TO_CHAR(pDATA, 'D') = 3 THEN 'Terça-Feira'
WHEN TO_CHAR(pDATA, 'D') = 4 THEN 'Quarta-Feira'
WHEN TO_CHAR(pDATA, 'D') = 5 THEN 'Quinta-Feira'
WHEN TO_CHAR(pDATA, 'D') = 6 THEN 'Sexta-Feira'
WHEN TO_CHAR(pDATA, 'D') = 7 THEN 'Sábado'
END AS DIA_DA_SEMANA into vRET;
return vRET;
end
$BODY$
 LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION dia_da_semana(date) OWNER TO pgsql;

*USO: select dia_da_semana(CURRENT_DATE-1);
*


CREATE OR REPLACE FUNCTION dia_da_semana(bpchar)
 RETURNS "varchar" AS
$BODY$
DECLARE
pDATA ALIAS FOR $1;
vRET varchar;
BEGIN
SELECT CASE WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 1 THEN 'Domingo'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 2 THEN 'Segunda-Feira'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 3 THEN 'Terça-Feira'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 4 THEN 'Quarta-Feira'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 5 THEN 'Quinta-Feira'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 6 THEN 'Sexta-Feira'
WHEN TO_CHAR(TO_DATE(pDATA,'dd/mm/yyyy'), 'D') = 7 THEN 'Sábado'
END AS DIA_DA_SEMANA into vRET;
return vRET;
end
$BODY$
 LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION dia_da_semana(bpchar) OWNER TO pgsql;

*USO: select dia_da_semana('24/01/2007');
*

Adriano Espinoza de Oliveira wrote:
Uso a função abaixo, bem parecida com o que a Milena sugeriu:

CREATE OR REPLACE FUNCTION "public"."dia_da_semana" (integer) RETURNS varchar AS
$body$
begin
  return
    case
      when $1 = 0 then 'domingo'
      when $1 = 1 then 'segunda'
      when $1 = 2 then 'terça'
      when $1 = 3 then 'quarta'
      when $1 = 4 then 'quinta'
      when $1 = 5 then 'sexta'
      when $1 = 6 then 'sábado'
      else 'ERRO'
    end;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;



Em 16/03/07, * [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> escreveu:

        Milena...
        Vai aí uma dica...
SELECT CASE WHEN TO_CHAR(CURRENT_DATE, 'D') = 1 THEN 'DOMINGO'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 2 THEN 'SEGUNDA'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 3 THEN 'TERCA'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 4 THEN 'QUARTA'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 5 THEN 'QUINTA'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 6 THEN 'SEXTA'
                WHEN TO_CHAR(CURRENT_DATE, 'D') = 7 THEN 'SABADO'
           END AS DIA_DA_SEMANA;
--

    *Sidnei Samuel Klein *


    _______________________________________________
    Grupo de Usuários do PostgreSQL no Brasil
    Antes de perguntar consulte o manual
    http://pgdocptbr.sourceforge.net/

    Para editar suas opções ou sair da lista acesse a página da lista em:
    http://pgfoundry.org/mailman/listinfo/brasil-usuarios


------------------------------------------------------------------------

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a