Pesquisar em campo varchar2 contendo data e hora

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Marcos_R
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Dom, 27 Jan 2008 11:44 am
Localização: Catalão - Go

Existe uma aplicação na empresa que armazena data e hora em um campo varchar2 só que qualquer filtro via sql neste campo gera erro utilizando o comando de conversão to_date ex:

Selecionar tudo

SELECT
    A.DATA
FROM
    MOVIMENTO A
WHERE
    A.data >= TO_DATE('01/01/2008 10:15','DD/MM/YYYY HH24:MIN')
gera o erro ORA-12801 E ORA-01843
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Marcos,

você precisa converter o campo da sua tabela pra data, por exemplo.

Selecionar tudo

SELECT 
    A.DATA 
FROM 
    MOVIMENTO A 
WHERE 
    TO_DATE(A.data,'DD/MM/YYYY HH24:MIN') >= TO_DATE('01/01/2008 10:15','DD/MM/YYYY HH24:MIN')
obs: caso o campo data tenha indice o comando to_date vai anular esse indice, podendo ficar lenta sua consulta.

[]s
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Isso funciona ? (to sem oracle aqui pra testar esse MIN)

Selecionar tudo

'DD/MM/YYYY HH24:MIN'


Eu sempre fiz assim:

Selecionar tudo

'DD/MM/YYYY HH24:MI'
MI em vez de MIN.
Tenta aí ! :-o
Tineks
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 365
Registrado em: Ter, 24 Mai 2005 2:24 pm
Localização: Araraquara - SP
Cristiano (Tineks)
Araraquara - SP

Realmente Dr. Gori...
não percebi que estava MIN e realmente não existe esse tipo de conversão, o correto mesmo é MI ..

[]'s!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes