Ajuda com data e hora no Oracle.

344 views
Skip to first unread message

Eduardo Perdomo

unread,
Feb 24, 2014, 10:14:38 AM2/24/14
to delphi-br, php-b...@googlegroups.com
Pessoal, bom dia.

Tenho 3 campos no banco oracle , DATA, HORA, MINUTO.

Preciso fazer uma consulta usando a data , hora, minuto como intervalo de tempo, mas como somente o data é do tipo date, ficou meio complicado.

Hora e minuto é varchar. Além disso , na ferramenta que vou usar para passar o parâmetro não tenho datetime, só date, vou ter que concatenar tb para montar os parâmetros..

Alguém entendeu ?


--

Eduardo Perdomo
Consultor de Implantação
Grupo PC Sistemas - www.grupopc.com.br 
(21) 6845-8592

Cassiano Ricardo Mourão

unread,
Feb 24, 2014, 10:27:46 AM2/24/14
to php-b...@googlegroups.com
Entendi em partes, mas não entendi porquê não ter apenas um campo...


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para php-brasil+...@googlegroups.com.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Visite este grupo em http://groups.google.com/group/php-brasil.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

Marcos Thomaz

unread,
Feb 24, 2014, 10:32:56 AM2/24/14
to php-b...@googlegroups.com
Converta em inteiro os campos hora e minuto, somando-os. Assim fica mais fácil de filtrar....
(to_number( hora ) * 100 + to_number( minuto)) between 1230 and 1330

Ou então, simplesmente faça a concatenação de hora e minuto. No filtro, faça o filtro inicialmente pela data, e depois por esse campo de concatenação.
--


Marcos Thomaz da Silva
Analista de Tecnologia da Informação

Eduardo Perdomo

unread,
Feb 24, 2014, 11:03:58 AM2/24/14
to php-b...@googlegroups.com
Sim..entendi..mas acho que será preciso "somar" ou concatenar com a data também, pois o intervalo de tempo pode ser de 23:00 do dia anterior até 01:00 do dia seguinte..daí acho que a multiplicação mais soma vai furar...

Penso que poderia concatenar tudo e passar para a função to_date e dixar o oracle resolver a diferença de data...

Esse exemplo que achei me parece que é o caminho, sendo que o billed_time seria os campos do banco concatenados.
SELECT billed_time
FROM   bill
WHERE  TO_DATE(billed_time, 'mm/dd/yyyy HH:MI:SS AM') >= TO_DATE('01/01/2007 12:00:01 AM','mm/dd/yyyy HH:MI:SS AM');

Marcos Thomaz

unread,
Feb 24, 2014, 11:05:33 AM2/24/14
to php-b...@googlegroups.com
pode ser tb.
Reply all
Reply to author
Forward
0 new messages