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