Ich habe gerade die OCA-Zertifizierung Frage überprüft und ich erkannte, dass etwas nicht stimmt. Sie fragen:Datatime-Format funktioniert nicht, wie der Oracle-Lehrer sagte
Please provide the time of hiring (HR user) from all users in ascending order
Also schrieb ich die nächste Abfrage:
SELECT employee_id, first_name, last_name, hire_date
FROM employees
WHERE hire_date BETWEEN '01/01/80' AND '01/01/99'
ORDER BY hire_date;
und die instructoe sagen, das ist falsch, weil das Datatime ist falsch! das sollte '01 -JAN-80 'sein. Was? Das ist unglaublich!
Ich habe keine Datenbank auf meinem Laptop installiert, aber ich bin sicher, dass ich diese Abfrage mehrmals bei meiner letzten Arbeit ausführen und das Datenformat ist /
und nicht -
.
Jeder Vorschlag ist willkommen.
UPDATE
Getestet habe ich es nur in einem xe 10g und ist auf jeden Fall /
und nicht -
:
http://imageshack.us/photo/my-images/28/truethat.jpg/()
Es hängt vom NLS-Datumsformat ab ... jeder von Ihnen könnte Recht haben. Sie haben die Zeichenfolge "01/01/80" jedoch nicht explizit in ein Datum konvertiert. – Ben
Sie haben Recht. Das Standarddatumsformat für Oracle ist Day-MON-year. Wenn Sie Ihr Beispiel ausführen, erhalten Sie keinen gültigen Monatsfehler. Sie müssten Ihre Zeichenfolge in ein Datumsformat mit einer bestimmten Formatierung umwandeln, damit es wie folgt funktioniert: 'Wählen Sie * von Mitarbeitern aus, bei denen hire_date zwischen to_date ('01/01/1980 ',' MM/DD/YYYY ') und to_date (' 01.01.1999 ',' MM/TT/JJJJ ') 'es ist nicht das -/das hat dich vermasselt es ist die JAN – xQbert
ich bin ziemlich sicher, dass das nicht wahr ist., In wenigen Momenten bin ich es getestet und getestet beweise es – hibigo