to_Date Oracle

Kenan89

Bekanntes Mitglied
Hallo ich habe eine Frage bzgl. der to_date Funktion in Oracle.
Standard Format in Oracle ist, falls ich richtig nachgeschaut habe:
SQL:
'yyyy-mm-dd hh24:mi:ss'

Jetzt habe ich 3 Strings: Tag, Monat, Jahr die ich in einen String kombiniere:

Java:
String Tag = 01;
String Monat = Februar;
String Jahr = 2001;
String Datum = Tag+". "+Monat+" "+Jahr;

Diese will ich in die Datenbank einfügen und muss sie natürlich formatieren. mit
Java:
to_date(Datum, 'yyyy-mm-dd hh24:mi:ss');
beim insert-Code.

Meine Frage ist erstens, ist das wirklich der Default-Date Format von Oracle?
Zweite Frage ist, wie Java das to_date ausführen will, den in meinem String Datum fehlen Uhrzeitangaben, die für den Default-Date Format wichtig sind.
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
ansonsten geht sicherlich auch 'yyyy-mm-dd' als Format bzw. mit - und . als Trenner musst du dich eh noch abstimmen,
die Reihenfolge Jahr, Monat, Tag ist auch nicht zum Spass da, wenn du es anders übergeben willst, dann formuliere das Pattern passend..,
ach und dann muss Monat auch noch ne Zahl sein, mit deutschem Text würde es Oracle eh schwer haben,
da kommt ja wirklich ne Menge zusammen

Variablennamen unbedingt klein schreiben
 

Kenan89

Bekanntes Mitglied
Ich habe das jetzt so gemacht:

Java:
String Datum = Tag+". "+Monat+" "+Jahr; //Ausgabebeispiel: 03. Februar  2010
to_date(Datum, 'd. MMMM yyyy');

Das sind nur die relevanten Codeschnipsel. Eclipse sagt mir: Invalid character constant

EDIT: Code etwas umschrieben:
Java:
String Datum = Tag+". "+Monat+" "+Jahr; //Ausgabebeispiel: 03. Februar  2010
to_date(Datum, "d. MMMM yyyy");
Jetzt sagt Eclipse: The method to_date(String, String) is undefined for the type JavaTestKlasse
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Meine Frage ist erstens, ist das wirklich der Default-Date Format von Oracle?
Zweite Frage ist, wie Java das to_date ausführen will, den in meinem String Datum fehlen Uhrzeitangaben, die für den Default-Date Format wichtig sind.

Zur ersten: Ich gehe davon aus dass das Standarddatum von Oracle auch mit den Einstellungen von Zeitzone (Locale im Allgemeinen) zutun hat. Zumindest halte ich es für gefährlich so etwas hardzukodieren.

Zur zweiten: In der to_date()-Funktion von Oracle gibst du dein Format ja schon an. Also unabhängig vom internen Format von Oracle kannst hier angeben wie du deinen String formatiert hast und natürlich Minuten u.ä. weglassen, z.B. also
Code:
to_date('24.12.2011', 'dd.mm.yyyy')
 

HoaX

Top Contributor
Ich habe das jetzt so gemacht:

Java:
String Datum = Tag+". "+Monat+" "+Jahr; //Ausgabebeispiel: 03. Februar  2010
to_date(Datum, 'd. MMMM yyyy');

Das sind nur die relevanten Codeschnipsel. Eclipse sagt mir: Invalid character constant

Kann es sein dass du den Code wirklich exakt so im Eclipse stehen hast? to_date ist eine Methode der Datenbank, die wird a) Java nicht kenne, und b) ' definiert einen Char, klar dass da gemeckert wird, wenn da ein String kommt.
 
S

SlaterB

Gast
> Eclipse sagt mir: Invalid character constant

[c]to_date(Datum, 'd. MMMM yyyy');[/c]
kann man auch nicht direkt in den Quellcode schreiben, oder was soll dann deiner Meinung nach passieren?
das kann korrekt verwendet irgendwann mal Teil eines SQL-Strings für eine Oracle-Datenbank-Abfrage sein,
aber bis dahin ist es ein langer langer Weg wenn du diesen Fehler nicht selber erkennst
 

Kenan89

Bekanntes Mitglied
Danke für die Antwort aber das klappt leider nicht.
Ich habe folgendes testweise mal ohne Stringvariable versucht:
Java:
to_date("01. Februar 1997", "d. MMMM yyyy");
Leider spuckt er eine Fehlermeldung aus:
The method to_date(String, String) is undefined for the type JavaTestKlasse
 
S

SlaterB

Gast
was erwartest du überhaupt?? was soll denn passieren?

> Zweite Frage ist, wie Java das to_date ausführen wil

das ist wirklich ne Frage, mehr als diese Fehlermeldung kannst du nicht erwarten,
Oracle ist hier eine Datenbank, nicht der Java-Hersteller neuerdings ;)
 

Kenan89

Bekanntes Mitglied
Okay, aber irgendwie muss es mir möglich sein, to_date einen String mitzugeben. Schließlich weiss
ich ja nicht, was der User später für ein Datum eingeben wird.
Da to_date eine SQL Methode ist, denke ich, dass Sie in den execute Bereich gehört.

Nun schaut mein executeUpdate so aus:
Java:
executeUpdate("VorName1', 'Vorname2', to_date(geburtsdatum, 'd. MMMM yyyy')");

Jetzt wird die to_date Methode ausgeführt. Leider erhalte ich seitens Eclipse zwar keine Fehlermeldung, aber es kann jetzt wegen diesem to_date nicht auf die Tabelle zugegriffen werden.
 

DerFeivel

Bekanntes Mitglied
Danke für die Antwort aber das klappt leider nicht.
Ich habe folgendes testweise mal ohne Stringvariable versucht:
Java:
to_date("01. Februar 1997", "d. MMMM yyyy");
Leider spuckt er eine Fehlermeldung aus:
The method to_date(String, String) is undefined for the type JavaTestKlasse

Also du übergibst der to_date-Funktion schonmal den falschen Format-String im zweiten Parameter:

Guck mal hier:

Oracle Dates and Times

Wenn dann muss es
SQL:
to_date("01. Februar 1997","dd. Month yyyy")
heißen, da du den vollständigen Monatsnamen angibst. Zudem ist für den Tag des Monats immer dd anzugeben (soweit ich das gerade in Erinnerung habe)
 

DerFeivel

Bekanntes Mitglied
Okay, aber irgendwie muss es mir möglich sein, to_date einen String mitzugeben. Schließlich weiss
ich ja nicht, was der User später für ein Datum eingeben wird.
Da to_date eine SQL Methode ist, denke ich, dass Sie in den execute Bereich gehört.

Nun schaut mein executeUpdate so aus:
Java:
executeUpdate("VorName1', 'Vorname2', to_date(geburtsdatum, 'd. MMMM yyyy')");

Jetzt wird die to_date Methode ausgeführt. Leider erhalte ich seitens Eclipse zwar keine Fehlermeldung, aber es kann jetzt wegen diesem to_date nicht auf die Tabelle zugegriffen werden.

Java:
executeUpdate("VorName1', 'Vorname2', to_date("+Datum+", 'dd. Month yyyy')");

Wenn Datum die String-Variable aus dem Initial-Beitrag ist.


Tante Edith sagt auch: Volle Monatsnamen auf englisch...
 
Zuletzt bearbeitet:

Kenan89

Bekanntes Mitglied
Danke deine Antwort war sehr hilfreich.
Ich muss wohl in die MySql Formatregeln geschaut haben.
Laut deinem Link müsste jetzt die execute-Zeile so aussehen:

Java:
...'Nachname1',to_date("+geb_datum+", 'DD. MONTH YYYY'));

DD = Monatstag(zweistellig?)
MONTH = Monat, ausgeschrieben
YYYY = Jahr, 4-stellig

Trotzdem kann man nicht auf die Tabelle zugreifen.
 

DerFeivel

Bekanntes Mitglied
Poste mal bitte deinen gesamten, relevanten Quelltext:


die executeUpdate-Methode (die ich vermute, dass du sie benutzt) von java.sql.Statement erwartet ein vollständiges SQLQuery und nicht nur irgendwelche Werte.

(bei meinem vorherigen Post war ich da wohl etwas unachtsam)
 
S

SlaterB

Gast
'zugreifen' ist komische Sprache, zumindest für exakte Fehlerbeschreibung

fange mit
executeUpdate("huhu");
ab,
das sollte eine deftige Fehlermeldung geben, bevor du die nicht mit StackTrace usw. erhälst kannst du andere komplizierte Dinge nicht wirklich angehen

-------

mit String-Variablen usw. musst du vorerst auch nicht unnötige Komplexität reinbringen,
teste vorerst maximal komplett feste Werte a la
to_date('01. January 2012', 'DD. MONTH YYYY')

möglichst parallel auch in einem normalen DB-Tool statt Java
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
missy72 Methoden Calendar/Date Countdown Allgemeine Java-Themen 9
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
M JDBC DATE 0000-00-00 kann nicht ausgegeben werden Allgemeine Java-Themen 3
L Erste Schritte Java Date Format Pattern bestimmten Allgemeine Java-Themen 2
Blender3D AWT Fehlerhafte Zeit bei Calender und Date DateFormat Allgemeine Java-Themen 8
P Date und Time in Java Allgemeine Java-Themen 7
B Swing Date Spinner Allgemeine Java-Themen 2
Grejak Date und SimpleDateFormat Allgemeine Java-Themen 6
D Timestamp to Date, ergibt falsches ergebnis Allgemeine Java-Themen 5
M massenhaft verschiedene Date-Pattern Allgemeine Java-Themen 3
N SimpleDateFormat: Unparseable date Allgemeine Java-Themen 5
Madlip Erste Schritte Probleme mit Date() Allgemeine Java-Themen 6
T String in Date parsen (*ohne* bekanntes Format) Allgemeine Java-Themen 8
N java.util.Date - Zeit auf 00:00 setzen Allgemeine Java-Themen 3
GianaSisters Klassen Unterschiedliche Zeiten bei DATE Allgemeine Java-Themen 6
Z new Date() liefert falsche Uhrzeit Allgemeine Java-Themen 12
G Calendar/Date arithmetic Allgemeine Java-Themen 3
J Datentypen Problem mit Date-Object Allgemeine Java-Themen 2
B Unix-Timestamp > Date macht Probleme. Allgemeine Java-Themen 3
M Object-Instanz in Date übersetzen Allgemeine Java-Themen 6
E Seltsamer aufruf von java.util.Date.toString() Allgemeine Java-Themen 3
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
Joy String in Date umwandeln Allgemeine Java-Themen 2
K String zu Date kovertieren Allgemeine Java-Themen 3
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
0 Datum in Java Date umwandeln Allgemeine Java-Themen 4
C Datum erstellen für SQL Format Date Allgemeine Java-Themen 3
R Moeglichst viele Datumsstrings in Date Objekte konvertieren? Allgemeine Java-Themen 3
B Date Addition Allgemeine Java-Themen 2
H2SO3- Date "18.11.2002 20:02:33" trotz Locale.GERMAN nic Allgemeine Java-Themen 9
H2SO3- Exception beim date parsen des Jahres 00 Allgemeine Java-Themen 6
H2SO3- merken versch. Date Typen + erlaubte und unerlaubte kombinat Allgemeine Java-Themen 4
H2SO3- date mit pm and am parsen Allgemeine Java-Themen 3
G double in Date Allgemeine Java-Themen 5
S Date Objekt von voller Stunde Allgemeine Java-Themen 3
M Date objekt als 00.00.0000 ausgeben Allgemeine Java-Themen 2
MQue Date, Timestamp, Millisecond Allgemeine Java-Themen 3
alexpetri Date Parsen Allgemeine Java-Themen 3
F Problem mit TimeStamp to Date Allgemeine Java-Themen 8
M Date Range auswerten und die Monate berechnen Allgemeine Java-Themen 2
DEvent min. Jahr von Date Allgemeine Java-Themen 2
H Wer kennt sich mit der Klasse Date aus? Allgemeine Java-Themen 3
G Date wird nicht richtig geparsed Allgemeine Java-Themen 3
H zwei Date Variablen überschreiben sich Allgemeine Java-Themen 2
P von Date zu Timestamp Allgemeine Java-Themen 10
H Date in String wandeln un dumgekehrt. Allgemeine Java-Themen 17
P SimpleDateFormat/Date Allgemeine Java-Themen 4
N Date & RMI Problem Allgemeine Java-Themen 3
V Date und Calendar . Allgemeine Java-Themen 3
P sql.Date -> the constructor Date() is undefined! Allgemeine Java-Themen 3
M String nach Date Allgemeine Java-Themen 4
E XML dateTime String in Date mit SimpleDateFormat umwandeln Allgemeine Java-Themen 5
K Date formatieren Allgemeine Java-Themen 7
L String ==> Date ==> GregorianCalendar Allgemeine Java-Themen 3
G Date-Objekt aus Datums-String erstellen Allgemeine Java-Themen 6
F Spezialfrage zu Date Allgemeine Java-Themen 5
L-ectron-X Zeitspanne mit Date und DateFormat Allgemeine Java-Themen 7
B String to Date Allgemeine Java-Themen 7
K Date: getTime immer gleich Allgemeine Java-Themen 4
B Java.Date -> Delphi.TDateTime Allgemeine Java-Themen 4
D Datum und Zeit - Date, Calendar oder GregorianCalender ? Allgemeine Java-Themen 13
P Alter in Jahren aus Date-Objekt ermitteln Allgemeine Java-Themen 5
T Datum als String in Date umwandeln Allgemeine Java-Themen 3
R Date Tage abziehen Allgemeine Java-Themen 3
I java.util.Date - die 1970-Untergrenze Allgemeine Java-Themen 3
T Probleme mit Date und Calendar Allgemeine Java-Themen 7
W Mit Date-Objekten arbeiten Allgemeine Java-Themen 10
Oneixee5 Oracle, wieder mal ... Allgemeine Java-Themen 12
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16
K Oracle Java Lizenzänderung ab Java 17 Allgemeine Java-Themen 2
A Java JDK ohne Oracle Konto Allgemeine Java-Themen 5
F Timestamp in Oracle ohne Formatierung reinbekommen Allgemeine Java-Themen 7
M Umstieg Oracle JDK zu Open JDK Allgemeine Java-Themen 20
T Unterschied Oracle JDK 8u111 8u112 Allgemeine Java-Themen 3
Ebenius Compiler-Fehler Oracle javac 7 nicht kompatibel zu Sun javac 6 Allgemeine Java-Themen 12
E Oracle kann durch 0 teilen !?! Allgemeine Java-Themen 7
G Oracle Updatepolitik Allgemeine Java-Themen 2
J Zertifizierung von Oracle, ehemals SCJP Allgemeine Java-Themen 4
BinaryLogic Oracle Zertifizierungen Allgemeine Java-Themen 3
G Oracle will mehrere hundert Produkte patchen Allgemeine Java-Themen 5
W JBoss,Axis2,Hibernate/JPA,Oracle - EntityManager Problem Allgemeine Java-Themen 4
D Oracle 10 Connect - JRE 5 vs 4 Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben