Das problematische „0000-00-00 00:00:00“ DATETIME Der Wert, der einen Quasi-Null-Zustand darstellt, löst häufig eine Ausnahme aus, wenn versucht wird, ihn mithilfe von als Zeichenfolge abzurufen ResultSet.getString(). Um dieses Problem zu beheben, ziehen Sie die folgenden Optionen in Betracht:
1. Umwandeln in CHAR
Um den rohen DATETIME-String so zu erhalten, wie er in der Datenbank erscheint, verwenden Sie eine MySQL-spezifische Abfrage:
SELECT CAST(add_date AS CHAR) AS add_date
2. JDBC-URL-Konfiguration
Alternativ können Sie „zeroDateTimeBehavior=convertToNull“ an Ihre JDBC-URL anhängen:
jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
Dadurch wird JDBC so konfiguriert, dass „0000-00-00 00:00:00“ konvertiert wird '-Werte auf NULL setzen, sodass Sie sie abrufen können, ohne eine auszulösen Ausnahme.
3. Konfigurationseigenschaft „zeroDateTimeBehavior“
Für Connector/J-Versionen 3.1 und höher bietet die Eigenschaft „zeroDateTimeBehavior“ mehr Anpassungsmöglichkeiten. Indem Sie es auf „Exception“, „convertToNull“ oder „round“ setzen, können Sie angeben, wie DATETIME-Werte behandelt werden:
Weitere Einzelheiten zu dieser Konfigurationseigenschaft finden Sie im MySQL-Handbuch.
Hinweis: In MySQL Connector/J 5.1.15, Ein Fehler betraf die Funktion „zeroDateTimeBehavior=convertToNull“. Informationen zu Fehlerbehebungen finden Sie in den CHANGELOGS der offiziellen Website.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit DATETIME-Werten „0000-00-00 00:00:00' in JDBC um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!