Probleme mit Date in H2 Datenbank

Status
Nicht offen für weitere Antworten.

trazzag

Bekanntes Mitglied
Hallo!

Ich möchte in einer Anwendung alte Daten (älter als zwei Jahre) aus einer Datenbanktabelle löschen. Dazu habe ich mir folgende Funktion geschrieben:

Code:
public void loescheAlteHistorie() {
		dbConnection = getConnection();
		Statement statement = null;
		try {
			statement = dbConnection.createStatement();
			Date datum = new java.util.Date();
			SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
			String dateString = formater.format(datum);
			System.out.println("aktuelles Datum: " + dateString);
			int i = Integer.parseInt(dateString.substring(0, 4));
			i = i - 2;
			dateString = i + dateString.substring(4, 10);
			System.out.println("altes Datum: " + dateString);
			statement.executeUpdate("DELETE FROM Historie WHERE Datum < "
					+ dateString + ";");
			view.bereinigenMessage();

			dbConnection.close();
		} catch (SQLException exception) {
			view.errorMessage("Fehler beim Löschen der veralteten Daten: "
					+ exception);
		}
	}

Ich erhalte folgende Fehlermeldung: "org.h2.jdbc.JdbcSQLException: Kann Datum 1979 nicht umwandeln
Cannot parse date constant 1979 [90009-56]".
Ein Datum 1979 kommt in meinen Testdaten aber gar nicht vor...!

Hoffe mir kann jemand helfen.
 
Mach's einfacher
Code:
...
      PreparedStatement statement = null;
      try {
         Calendar calendar = Calendar.getInstance();
         calendar.add(Calendar.YEAR, -2);

         statement = dbConnection.prepareStatement("DELETE FROM Historie WHERE Datum < ?");
         statement.setDate(1, new java.sql.Date(calendar.getTimeInMillis()));
         statement.executeUpdate();

         view.bereinigenMessage();
...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben