Seite 1 von 1

Re: MySQL Abfrage funktioniert nicht mit JDBC

Verfasst: Fr 6. Mai 2016, 20:06
von RobertG
Hallo Theophilus,

irgendwie passt die Abfrage nicht zum Ergebnis:

Code: Alles auswählen

SELECT `Geburtsdatum`, STR_TO_DATE( `Geburtsdatum`, '%d.%m.%Y' ) FROM `database`.`table`
Ergebnis: '17.03.1950', '1950-03-17'.
Sollte das Geburtsdatum als String vorliegen, so macht die Umwandlung Sinn. Dann müsste aber das erste Feld des Ergebnisses mit dem Bindestrich als Trennung vorliegen, weil im zweiten Feld etwas mit der deutschen Schreibweise steht.

Die Zahl '18339' entspricht dem internen Wert für das entsprechende Datum 17.3.1950. Wenn Du das Feld nicht als Textfeld, sondern als Datumsfeld formatierst, dann wird auch das Datum angezeigt.

Vielleicht ist DATE_FORMAT() die Funktion, die Du suchst. Hier erkennt Base direkt, dass es sich um ein Datum handelt.

Gruß

Robert

Re: MySQL Abfrage funktioniert nicht mit JDBC

Verfasst: Sa 7. Mai 2016, 09:33
von RobertG
Hallo Theophilus,

jetzt einmal Stück für Stück:
Liegt bei Dir das Feld "Geburtsdatum" als Textfeld vor?

Mit einem Datumsfeld habe ich unter LibreOffice mit DATE_FORMAT() direkt Erfolg gehabt - ebenfalls mit einer MariaDB und JDBC-Verbindung.

Gruß

Robert

Re: MySQL Abfrage funktioniert nicht mit JDBC

Verfasst: Sa 7. Mai 2016, 20:18
von RobertG
Hallo Theophilus,

dann müsste der Code

Code: Alles auswählen

SELECT `Geburtsdatum`, STR_TO_DATE( `Geburtsdatum`, '%Y-%m-%d' ) FROM `database`.`table`
doch genau das sein, was zum Kopieren reicht. Die Abfrage gibt Dir nur statt des Datums die interne Zahl wieder, mit der das Datum verwaltet wird. Wenn Du das Format der Spalte änderst, dann siehst Du auch das entsprechende Datum.

Hast Du einmal probiert, was das Ergebnis beim Kopieren in die Zieltabelle ist?

Gruß

Robert

Re: MySQL Abfrage funktioniert nicht mit JDBC

Verfasst: So 8. Mai 2016, 08:58
von RobertG
Hallo Theophilus,

ich habe diese Abfrage

Code: Alles auswählen

SELECT STR_TO_DATE( `Geburtsdatum`, '%d.%m.%Y' ) AS `Datum` FROM `database`.`table`
jetzt einmal getestet und in eine andere Tabelle als Datum einfügen können. Das Datum für "Geburtsdatum" wurde aus dem Text '08.05.2016' ausgelesen. Der Wert wurde in der Abfrage als Integer-Zahl ausgegeben, aber problemlos als korrekter Datumswert in die aufnehmende Tabelle eingefügt.

Gruß

Robert