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

Responder a