Erro em consulta

Delphi

02/10/2009

Olá,

Tenho uma tabela com 1 campo do tipo DATE (DT_DIA) e outro do tipo TIME (DS_HORA). Estou tentando usar o codigo abaixo para que retorne todas as tarefas que tenham a data anterior a data atual e as tarefas com data igual a data atual e com hora anterior a hora atual. Só que esta retornando somente as tarefas com data anterior a data atual, não retorna as tarefas com data igual a atual e com hora anterior a hora atual. Onde está o erro?

QRYPEND.SQL.Text := ´SELECT * FROM AGENDA WHERE ((DT_DIA < CURRENT_DATE) OR ((DT_DIA = CURRENT_DATE) AND (EXTRACT(HOUR FROM DS_HORA) < EXTRACT(HOUR FROM CURRENT_TIME))))´;


Grato

Luiz


L_carlos

L_carlos

Curtidas 0

Respostas

Afarias

Afarias

02/10/2009

Todos os registros com data/hora anterior a data/hora atual?? Assim:


SELECT * FROM AGENDA
WHERE DT_DIA+DS_HORA < CURRENT_TIMESTAMP;


T+


GOSTEI 0
Afarias

Afarias

02/10/2009

quanto ao seu SQL, me parece q o erro pode estar nos parênteses (algum colocado num lugar errado) ... livre-se deles:


SELECT * FROM AGENDA
WHERE DT_DIA<CURRENT_DATE OR (
DT_DIA=CURRENT_DATE AND
EXTRACT(HOUR FROM DS_HORA)<EXTRACT(HOUR FROM CURRENT_TIME))´;


T+


GOSTEI 0
L_carlos

L_carlos

02/10/2009

Caro Afaras,

Continua sem retornar as tarefas com data atual e hora anterior a atual.

Luiz


GOSTEI 0
Afarias

Afarias

02/10/2009

|Continua sem retornar as tarefas com data atual e hora anterior a atual.


Está certo disto? Não vejo como estar errado.

Qual o banco de dados? FB? Q versão? Qual o dialeto? Os tipos dos campos são realmente DATE e TIME respectivamente?

Pode ter algo errado, mas *não* é o SQL. Veja se os dados (na sua tabela) estão corretos.


T+


GOSTEI 0
L_carlos

L_carlos

02/10/2009

Caro Afarias, me desculpe, foi erro meu, tanto a sua dica como o codigo que postei estavam corretos. A falha foi digitar o campo errado para pesquisar a hora.

Grato

Luiz :shock:


GOSTEI 0
POSTAR