Oracle SQL - DATE groter dan statement

Zoals de titel zegt, wil ik een manier vinden om via een query te controleren welke van mijn datasets voorbij de 6 maanden zijn vanaf SYSDATE.

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

Ik'heb het volgende geprobeerd maar het geeft een foutmelding dat mijn datum formaat verkeerd is. Echter, bij het invoegen van de gegevens gebruikte ik dat datumformaat zoals gevraagd/bedoeld en had geen problemen.

Fout bij opdrachtregel : 10 Kolom : 25

Blokquote

Fout rapport -

SQL Fout: ORA-01861: literal komt niet overeen met format string 01861. 00000 - "literal komt niet overeen met format string"

*Oorzaak: De lettertekens in de input moeten even lang zijn als de lettertekens in de format string (met uitzondering van voorloopwitruimte). Als de "FX" modifier is aangezet, moet de lettertekst exact overeenkomen, zonder extra spaties.

*Actie: Corrigeer de format string zodat deze overeenkomt met de letterlijke tekst.

Aangezien je querystring een letterwoord is, en ervan uitgaande dat je datums correct zijn opgeslagen als DATE, moet je date literals gebruiken:


SELECT * FROM OrderArchive
WHERE OrderDate 
Commentaren (2)

Je moet de string omzetten naar datum met de to_date() functie


SELECT * FROM OrderArchive
WHERE OrderDate 
Commentaren (0)

moet je de functie To_Date() gebruiken om de string naar datum om te zetten! http://www.techonthenet.com/oracle/functions/to_date.php

Commentaren (0)