Consulta com data e hora

2 respostas
G

Bom Dia, preciso exibir uma lista pra poder montar um relatório, e o requisito é, que seja exibido funcionários que entraram depois das 09hs e sairam antes das 17hs… e tenho que escolher o período,
Se eu executo do jeito que tá aqui, da certo…mas ele pega funcionários muito antigos, de 2007. Só que quando tento a opção de cadastrar período já não da certo…ele executa mas não exibe a lista, só os campos… e não exibe erro também…
estou acrescentando isso no where and h.dt_dia = ‘01/08/2011’ and h.dt_dia = ‘10/08/2011’;
e já tentei convertendo também igual fiz abaixo e da a mesma coisa…

select f.sigla,f.nome,f.tipo,f.n_apropriacao,f.local,f.centro_custo,f.descricao,
h.hora,h.dt_dia as data,h.destino as registro

from funcionario f, horario_unico h

where to_timestamp(h.hora, ‘HH24:MI’) > to_timestamp(‘9:00’,‘HH24:MI’) and
to_timestamp(h.hora,‘HH24:MI’) < to_timestamp(‘17:00’,‘HH24:MI’);

O que estou fazendo de errado ? Teria necessidade de fazer subqueries ??
Comecei com banco agora, tenho muitas duvidas. .

Obrigado!

Beijos.

2 Respostas

DZR

Bem, aconselho a montar o SQL com o formato já de banco. Coloque a data assim:

“2011-08-01” ou seja, AAAA/mm/DD (Ano,Ano,Ano,Ano,mes,mes,Dia,Dia) e execute seu SQL.
Se o seu banco for Oracle, atente-se ao formato de data que o banco trata, pois dependendo da configuração, a data no Oracle fica “01/aug/2011”.

G

Olá DZR, Obrigado pela ajuda!

Estou usando Oracle sim .
e o erro estava que eu tinha que colocar um between pra poder exibir os dados entre essas datas. .
ficando assim . .

select f.sigla,f.nome,f.tipo,f.n_apropriacao,f.local,f.centro_custo,f.descricao,
h.hora,h.dt_dia as data,h.destino as registro

from funcionario f, horario_unico h

where h.dt_dia between to_date(05/05/2011,DD/MM/YYYY)

and to_date(10/05/2011,DD/MM/YYYY)

and to_timestamp(h.hora, HH24:MI) > to_timestamp(09:00,HH24:MI)

and  to_timestamp(h.hora,HH24:MI) < to_timestamp(17:00,HH24:MI);

só que agora está dando erro 01851- minutos deve estar entre 0 e 59.

mas não entendi . .
se executo até a penúltima linha, ele exibe certinho . .
mas quando executo a consulta inteira, da esse erro!

Alguém pode me ajudar ?

Criado 12 de agosto de 2011
Ultima resposta 12 de ago. de 2011
Respostas 2
Participantes 2