Eric Rodrigues escreveu:
> select * from mensagens where data = now()
>
> quando eu faco essa consulta, nao retorna nada e se eu consultar
>
> select now() from mensagens
>
> retorna
>
> '2006-10-30 14:09:22-03'
>
> acho q quando faco a primeira consulta, ele compara esse now() '2006-10-30
> 14:09:22-03' com minha data '30/10/2006'
> OBS: meu campo data esta no formato date com valor defalt now() e entra a
> data certinha....
>
> o q faco pra minha consulta select * from mensagens where data = now()
> funcionar ????
A função now() retorna um "timestamp with time zone" como você constatou
em seu teste.
Se você considerar uma data como um campo "timestamp with time zone"
você terá o seguinte resultado:
bdteste=# SELECT '2006-10-30'::timestamp with time zone;
timestamptz
------------------------
2006-10-30 00:00:00-03
(1 registro)
que só seria igual a now() exatamente a meia-noite, zero minutos, zero
segundos ...
Como, aparentemente, você só deseja comparar a data (dia-mês-ano) faça
um cast da função ou utilize CURRENT_DATE.
bdteste=# SELECT now()::date;
now
------------
2006-10-30
(1 registro)
bdteste=# SELECT current_date;
date
------------
2006-10-30
(1 registro)
[]s
Osvaldo
_______________________________________________________
O Yahoo! está de cara nova. Venha conferir!
http://br.yahoo.com
_______________________________________________
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