Oracle SQL - DATUM größer als Anweisung
Wie der Titel sagt, möchte ich einen Weg finden, um zu überprüfen, welche meiner Daten-sets sind in letzten 6 Monaten von über DATEPART-Abfrage.
SELECT * FROM OrderArchive
WHERE OrderDate <= '31 Dec 2014';
Ich habe versucht, die folgenden aber gibt es einen Fehler, dass mein Datumsformat ist falsch. Aber das einfügen der Daten habe ich das Datumsformat wie gewünscht/gedacht und hatte keine Probleme.
Fehler bei der Kommando-Zeile : 10 Spalte : 25
Blockquote
Fehler-Bericht -
SQL-Fehler: ORA-01861: literal does not match format string
01861. 00000 - "literal does not match format string"*Ursache: Literale in der Eingabe müssen die gleiche Länge haben als Literale in
der format-string (mit Ausnahme von führenden Leerzeichen). Wenn die
"FX" - Modifizierer aktiviert, wird das literal muss genau übereinstimmen
ohne zusätzlichen Leerraum.*Aktion: Korrigieren Sie den format-string übereinstimmen, die wörtliche.
InformationsquelleAutor der Frage user3521826 | 2015-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Ihre query-string ein literal, und vorausgesetzt, dass Ihre Daten richtig gespeichert
DATE
Sie verwenden sollten,Datums-Literale:Wenn Sie verwenden möchten
TO_DATE
(weil, zum Beispiel, wird Ihre Anfrage Wert ist, nicht wörtlich), ich schlage vor, Sie explizit den NLS_DATE_LANGUAGE parameter wie Sie mit UNS abgekürzten Monatsnamen. So, es brechen nicht auf einige lokalisierte Oracle-Installation:InformationsquelleAutor der Antwort Sylvain Leroux
Müssen Sie zum konvertieren von Zeichenfolgen in Datumsangaben mit dem
to_date()
FunktionODER
ODER
Dies funktioniert nur, wenn
OrderDate
gespeichert inDate format
. Wenn esVarchar
sollten Sie sich bewerbento_date()
func auf, dass die Spalte auch wieInformationsquelleAutor der Antwort Sachu
müssen Sie die To_Date () - Funktion konvertieren Sie die Zeichenfolge auf dem Laufenden !
http://www.techonthenet.com/oracle/functions/to_date.php
InformationsquelleAutor der Antwort kamokaze