ホームページ >データベース >mysql チュートリアル >MySQL の 0000-00-00 00:00:00 DATETIME 値を JDBC で処理するにはどうすればよいですか?

MySQL の 0000-00-00 00:00:00 DATETIME 値を JDBC で処理するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-02 13:05:38649ブラウズ

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

DATETIME 値 0000-00-00 の JDBC Null 処理 00:00:00

MySQL は DATETIME 値 0000-00- を処理します00 00:00:00 として「準 null」値が含まれており、JDBC 接続からそのような値を文字列として取得しようとすると、例外が発生する可能性があります。

この問題を処理するには、次の解決策の使用を検討してください。

オプション 1: CHAR へのキャスト

SQL で DATETIME 列を CHAR に明示的にキャストできます。 query:

SELECT CAST(add_date AS CHAR) AS add_date

これは、特定のデータ型にキャストせずに生の DATETIME 文字列を返します。

オプション 2: JDBC 構成を使用する

または、zeroDateTimeBehavior を使用して JDBC URL を構成することもできますパラメータ:

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

この構成では、DATETIME 値 0000-00-00 00:00:00 は ResultSet 内で自動的に NULL に変換されます。

zeroDateTimeBehavior パラメータは異なる値をとることができます。値:

  • 例外: 例外をスローします (デフォルト)
  • convertToNull: 値を NULL に変換します
  • round: 値を最も近い値に丸めます。 (0001-01-01)

この設定はデータベース内のすべての DATETIME 列に影響することに注意してください。

ソース:

  • MySQL マニュアル: https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html

以上がMySQL の 0000-00-00 00:00:00 DATETIME 値を JDBC で処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。