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

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

Susan Sarandon
リリース: 2024-12-26 01:32:09
オリジナル
920 人が閲覧しました

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

JDBC での DATETIME 値 '0000-00-00 00:00:00' の処理

問題のある '0000-00-00 00:00:00' DATETIME準 null 状態を表す値は、試行時に例外をトリガーすることがよくあります。 ResultSet.getString() を使用して文字列として取得します。これを解決するには、次のオプションを検討してください。

1. CHAR

へのキャスト データベースに表示される生の DATETIME 文字列を取得するには、MySQL 固有のクエリを使用します。

SELECT CAST(add_date AS CHAR) AS add_date
ログイン後にコピー

2. JDBC URL 設定

または、zeroDateTimeBehavior=convertToNull を JDBC URL に追加できます。

jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull
ログイン後にコピー

これにより、「0000-00-00 00:00:00」を変換するように JDBC が設定されます。 ' 値を NULL に設定すると、例外。

3. zeroDateTimeBehavior 構成プロパティ

Connector/J バージョン 3.1 以降では、zeroDateTimeBehavior プロパティでさらにカスタマイズが可能です。これを例外、convertToNull、round に設定することで、DATETIME 値の処理方法を指定できます。

  • Exception: SQL 例外をスローします (デフォルト)
  • convertToNull: NULL を返します
  • round: 日付を四捨五入します。 0001-01-01

この構成プロパティの詳細については、MySQL マニュアルを参照してください。

注: MySQL Connector/J 5.1.15 では、バグにより、zeroDateTimeBehavior=convertToNull 機能が影響を受けました。バグ修正の最新情報については、公式 Web サイトの CHANGELOGS を参照してください。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート