Pessoal,
Já que querem usar a cláusula CASE (a qual repudio veementemente), por que
não usam-na de outra forma [1], que onera um pouco menos o SGBD? É o análogo
de se trocar um IF-ELSEIF-...-ELSEIF por um SWITCH CASE. Além disso, usar as
funções extract() ou date_part() para retornar o dia da semana [2] é bem
mais elegante e seguro do que usar uma função de formatação/transformação
como o to_char().
A consulta poderia ficar assim:
SELECT
CASE extract(dow from now())
WHEN 0 THEN 'domingo'
WHEN 1 THEN 'segunda'
-- ...
WHEN 6 THEN 'sábado'
ELSE 'erro'
END;
Mas, para simplificar e deixar mais limpo o código, usaria a forma a seguir:
SELECT
('{domingo,segunda,terça,quarta,quinta,sexta,sábado}'::text[])[extract(dow
from now()) + 1];
[1] http://www.postgresql.org/docs/current/static/functions-conditional.html
[2] http://www.postgresql.org/docs/8.2/interactive/functions-datetime.html
--
Atenciosamente,
Rodrigo Hjort
Icewall Tecnologias
http://www.icewall.com.br
2007/3/16, Adriano Espinoza de Oliveira <[EMAIL PROTECTED]>:
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] <[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