Maison >base de données >tutoriel mysql >Comment gérer les valeurs DATETIME 0000-00-00 00:00:00 de MySQL dans JDBC ?

Comment gérer les valeurs DATETIME 0000-00-00 00:00:00 de MySQL dans JDBC ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-25 07:10:17698parcourir

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

Gestion des valeurs DATETIME de 0000-00-00 00:00:00 dans JDBC

Le type de données DATETIME de MySQL permet de stocker des "quasi -null" valeurs représentées par 0000-00-00 00:00:00. La récupération de ces valeurs à l'aide de JDBC peut s'avérer problématique, pouvant entraîner des exceptions ou des résultats inattendus.

Solution alternative sans conversion

Une approche pour gérer ces valeurs consiste à modifier l'URL JDBC, en ajoutant le paramètre suivant :

?zeroDateTimeBehavior=convertToNull

Cela demande au pilote de convertir les valeurs DATETIME de 0000-00-00 00:00:00 à NULL au lieu de lever une exception.

Source : Manuel MySQL

Le manuel MySQL fournit des informations supplémentaires sur ce problème :

  • Les valeurs DATETIME entièrement nulles ne peuvent pas être représentées de manière fiable en Java.
  • Connector/J 3.1 lève une exception lorsqu'il rencontre de telles valeurs par défaut.
  • La propriété zeroDateTimeBehavior permet de personnaliser ce comportement :

    • exception (par défaut) : lance un SQLException.
    • convertToNull : renvoie NULL au lieu de la date.
    • round : arrondit la date au 01/01/0001.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn