Oi Rafael,
dá problema porque quando você vai
CONVERTER STRING(CHAR) para DATE, você precisa informar EXATAMENTE uma máscara que ENCAIXA na string. No seu caso, como você informou data e hora na sua string, sua máscara de data deve conter HORAS também.
A "ÚNICA" máscara possível para esta conversão é esta.
Nestes casos STRING->TO_DATE precisa informar PRECISAMENTE a máscara.
Já quando você vai transformar DATE->TO_CHAR, não é necessário informar com esta precisão. o TO_CHAR torna-se apenas a maneira que você quer EXIBIR sua data em texto(ao contrario do TO_DATE que você precisa CONVERTER para data). Internamente DATE é tratado como se fosse um NUMBER. Portanto, não existem firulas de linguas, máscaras e etc.
Digamos que você tenha seu campo data(my_date) com a data "10/10/2013 12:48:55". você pode fazer N formas de
TO_CHAR com ela, ou seja, você tem N forma de
EXIBIR.
Selecionar tudo
TO_CHAR(my_date,'dd/mm/yyyy') = "10/10/2013"
TO_CHAR(my_date,'dd-mm-yy') = "10-10-13"
TO_CHAR(my_date,'RRRRMMDD') = "20131010"
Espero ter ajudado.