Hallo,

das habe ich mir schon gedacht, dass da prepared Statement und Date im Spiel ist; dabei ist halt die Tücke, dass da auf das Jahr 1900 draufgezählt werden - nimmt man da -1899, dann passt es.
Wenn der Treiber das alles richtig macht, und die Datenbank mit not null und default 1.1.0001 definiert ist, dann müsste man eigentlich auch mit prepStm.setDate(n, null) den gewünschten Effekt erreichen.
Ansonste müsste eigentlich auch DateFormat.parse("01.01.0001") zum gewünschten Ziel führen.

mfg

Dieter Bender

Zitat Zitat von mwithake Beitrag anzeigen
@Dieter Es ging darum den Wert mit der Methode setDate() der Klasse PreparedStatement zu schreiben und ich keine java.sql.Date-Objekt mit dem entsprechende Wert für '01.01.0001' hinbekam.

Habe inzwischen aber eine Lösung gefunden:

PHP-Code:
GregorianCalendar cal = (GregorianCalendar)GregorianCalendar.getInstance();
cal.set(101000);
Date emptyDate = new Date(cal.getTimeInMillis()); 
oder kurz

PHP-Code:
Date emptyDate = new Date(-62135773199359l
Wir nutzten den Wert '01.01.0001' als "Leerwert" weil ein RPG-CLEAR auf ein Datumsfeld genau diesen Wert ergibt und wir auf das umständlichen Handling von NULL-Werten in der Datenbank ansonsten gut verzichten können.

Gruß
M. Withake