GARANTIR DESCONTO

Fórum Consultas em indices #26766

13/10/2007

0

No oracle, quando faço uma consulta utilizando um indice e utilizo alguma função do banco na coluna no WHERE eu acabo perdendo a consulta por indice , ex:

select datacadastro from usuario where datacatastro = to_date(´15/10/2007´,´DD/MM/YYYY´)

(não sei se o exemplo esta correto tmbm :D )


no postgres isso acontece tmbm?


Geisonq

Geisonq

Responder

Posts

16/10/2007

Alex_182

Caro ´geisonq´,

No POSTGRESQL você pode utilizar palavra chave ´to_char´ como no ORACLE, ou seja é possível fazer busca dessa maneira na seguinte forma.

EX1:
SELECT datacadastro
FROM usuario
WHERE datacadastro = TO_DATE = (´11/10/2007´,´DD/MM/YYYY´);

OBS: Lembrando que muito banco de dados como DEFAULT utiliza data na seguinte ordem ´MM/DD/YYYY´ caso dentro da sua tabela de usuário esteja da seguinte maneira ->´11/10/2007´, nesse caso o 11 seria MÊS, 10 o DIA e 2007 ANO, ou seja ao executar o SELECT dessa maneira você teria resultado em branco.

Agora para Ter esse resultado o exemplo seria dessa maneira:

EX2:
SELECT datacadastro
FROM usuario
WHERE datacadastro = TO_DATE = (´10/11/2007´, ´DD/MM/YYYY´);

Espero ter ajudado. =)


Responder

Gostei + 0

18/10/2007

Alex_182

Caro ´geisonq´

Desculpa .. nesse código tem um erro de sintaxe ...

código ficaria assim. ..

SELECT datacadastro
FROM usuario
WHERE datacadastro = TO_DATE (´10/11/2007´, ´DD/MM/YYYY´);

e NÃO Assim:

SELECT datacadastro
FROM usuario
WHERE datacadastro = TO_DATE = (´10/11/2007´, ´DD/MM/YYYY´);



=]

. . .


Responder

Gostei + 0

29/12/2007

Mleal

Geiso,

Por que vc não seta a data (pelo SET datestyle to dmy) para eliminar a conversão. Tenho uma aplicação rodando no VB6 X PostgreSQL (usando o driver ODBC) e as seguintes consultas funcionam perfeitamente:

SELECT * FROM movto WHERE dt_mov=´31/12/2007´;

SELECT * FROM movto WHERE EXTRACT(month FROM dt_mov)=12;

SELECT * FROM movto WHERE dt_mov>=´13/12/2007´ AND dt_mov<=´31/12/2007´;

abçs

MLeal :P


Responder

Gostei + 0

29/12/2007

Mleal

Geiso,

Complementando a resposta anterior, se vc tiver um índice no campo dt_mov, o PostgreSQL o utiliza automaticamente nas consultas que exemplifiquei.

abçs.

MLeal


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar