Oracle SQL - DATA maior que a declaração

Como o título diz, quero encontrar uma maneira de verificar quais dos meus conjuntos de dados estão passados 6 meses do SYSDATE via consulta.

SELECT * FROM OrderArchive
WHERE OrderDate <= '31 Dec 2014';

I'tentei o seguinte, mas devolve um erro dizendo que o meu formato de data está errado. No entanto, inserindo os dados que usei esse formato de data como solicitado/pretendido e não tive problemas.

Erro na Linha de Comando : 10 Coluna : 25

Blockquote

Relatório de erro -

SQL Error: ORA-01861: literal não corresponde à string de formato 01861. 00000 - "literal não corresponde ao formato string"

*Causa: Os literais na entrada devem ter o mesmo comprimento que os literais em a cadeia de formatos (com excepção dos principais espaços em branco). Se o "FX" modificador foi alternado, o literal deve combinar exatamente, sem espaço extra para brancos.

*Acção: Corrige a string de formato para corresponder ao literal.

Como sua seqüência de consulta é literal, e assumindo que suas datas são devidamente armazenadas como DATE você deve utilizar date literals:


SELECT * FROM OrderArchive
WHERE OrderDate 
Comentários (2)

Você precisa converter a string para data utilizando a função to_date().


SELECT * FROM OrderArchive
WHERE OrderDate 
Comentários (0)

você tem que usar a função To_Date() para converter a string para data ! http://www.techonthenet.com/oracle/functions/to_date.php

Comentários (0)