Rumah >pangkalan data >tutorial mysql >Bagaimana Mengendalikan Nilai 0000-00-00 MySQL 00:00:00 DATETIME dengan JDBC?

Bagaimana Mengendalikan Nilai 0000-00-00 MySQL 00:00:00 DATETIME dengan JDBC?

Barbara Streisand
Barbara Streisandasal
2025-01-02 13:05:38649semak imbas

How to Handle MySQL's 0000-00-00 00:00:00 DATETIME Values with JDBC?

JDBC Null Handling untuk DATETIME Nilai 0000-00-00 00:00:00

MySQL merawat DATETIME nilai 0000-00-00- 00 00:00:00 sebagai "quasi-null" nilai dan cuba mendapatkan semula nilai seperti rentetan daripada sambungan JDBC boleh menyebabkan pengecualian.

Untuk mengendalikan isu ini, pertimbangkan untuk menggunakan penyelesaian berikut:

Pilihan 1: Menghantar kepada CHAR

Anda boleh secara eksplisit menghantar lajur DATETIME ke CHAR dalam SQL anda pertanyaan:

SELECT CAST(add_date AS CHAR) AS add_date

Ini akan mengembalikan rentetan DATETIME mentah tanpa menghantarnya ke jenis data tertentu.

Pilihan 2: Menggunakan Konfigurasi JDBC

Sebagai alternatif, anda boleh mengkonfigurasi URL JDBC anda dengan zeroDateTimeBehavior parameter:

jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull

Dengan konfigurasi ini, nilai DATETIME 0000-00-00 00:00:00 akan ditukar secara automatik kepada NULL dalam ResultSet anda.

Parameter zeroDateTimeBehavior boleh mengambil masa yang berbeza nilai:

  • pengecualian: Melemparkan pengecualian (lalai)
  • convertToNull: Menukar nilai kepada NULL
  • pusingan: Membundarkan nilai kepada nilai terdekat yang terdekat (0001-01-01)

Perhatikan bahawa tetapan ini mempengaruhi semua lajur DATETIME dalam pangkalan data anda.

Sumber:

  • Manual MySQL: https://dev.mysql.com/doc/connector-j/5.1/ms/connector-j-reference-configuration-properties.html

Atas ialah kandungan terperinci Bagaimana Mengendalikan Nilai 0000-00-00 MySQL 00:00:00 DATETIME dengan JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn