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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-25 07:10:17650ブラウズ

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

JDBC で 0000-00-00 00:00:00 の DATETIME 値を管理する

MySQL の DATETIME データ型では、「疑似」を格納できます。 -null" 値は次のように表されます。 0000-00-00 00:00:00。 JDBC を使用してこのような値を取得すると、問題が発生し、例外や予期しない結果が発生する可能性があります。

キャストを使用しない代替ソリューション

これらの値を処理する 1 つのアプローチは、変更することです。 JDBC URL に次のパラメータを追加します:

?zeroDateTimeBehavior=convertToNull

これは指示しますドライバーは、例外をスローする代わりに、DATETIME 値 0000-00-00 00:00:00 を NULL に変換します。

出典: MySQL マニュアル

MySQL マニュアルには、これに関する追加の洞察が記載されています問題:

  • すべてゼロの DATETIME 値は Java で確実に表現できません。
  • Connector/J 3.1 は、デフォルトでそのような値に遭遇すると例外をスローします。
  • zeroDateTimeBehavior プロパティを使用すると、これをカスタマイズできます動作:

    • 例外 (デフォルト): SQLException をスローします。
    • convertToNull: 日付の代わりに NULL を返します。
    • round: 日付を四捨五入します。 0001-01-01.

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

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