Heim > Datenbank > MySQL-Tutorial > Wie gehe ich mit DATETIME-Werten „0000-00-00 00:00:00' in JDBC um?

Wie gehe ich mit DATETIME-Werten „0000-00-00 00:00:00' in JDBC um?

Susan Sarandon
Freigeben: 2024-12-26 01:32:09
Original
920 Leute haben es durchsucht

How to Handle '0000-00-00 00:00:00' DATETIME Values in JDBC?

Umgang mit DATETIME-Werten „0000-00-00 00:00:00“ in JDBC

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
Nach dem Login kopieren

2. JDBC-URL-Konfiguration

Alternativ können Sie „zeroDateTimeBehavior=convertToNull“ an Ihre JDBC-URL anhängen:

jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
Nach dem Login kopieren

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:

  • Exception: Löst eine SQL-Ausnahme aus (Standard)
  • convertToNull: Gibt NULL zurück
  • runden: Rundet das Datum auf 0001-01-01

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage