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

Comment gérer les valeurs DATETIME « 0000-00-00 00:00:00 » dans JDBC ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-26 01:32:09924parcourir

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

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

Le problématique '0000-00-00 00:00:00' DATETIME valeur, représentant un état quasi nul, déclenche souvent une exception lorsque l'on tente de la récupérer en tant que valeur chaîne en utilisant ResultSet.getString(). Pour résoudre ce problème, envisagez les options suivantes :

1. Conversion en CHAR

Pour obtenir la chaîne DATETIME brute telle qu'elle apparaît dans la base de données, utilisez une requête spécifique à MySQL :

SELECT CAST(add_date AS CHAR) AS add_date

2. Configuration de l'URL JDBC

Vous pouvez également ajouter zeroDateTimeBehavior=convertToNull à votre URL JDBC :

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

Cela configure JDBC pour convertir '0000-00-00 00:00:00 ' valeurs à NULL, vous permettant de les récupérer sans déclencher de exception.

3. Propriété de configuration zeroDateTimeBehavior

Pour les versions 3.1 et supérieures de Connector/J, la propriété zeroDateTimeBehavior offre davantage de personnalisation. En le définissant sur exception, convertToNull ou round, vous pouvez spécifier comment les valeurs DATETIME sont gérées :

  • exception : lève une exception SQL (par défaut)
  • convertToNull : renvoie NULL
  • arrondi : arrondit la date à 0001-01-01

Reportez-vous au manuel MySQL pour plus de détails sur cette propriété de configuration.

Remarque : Dans MySQL Connector/J 5.1.15, un bug affectait la fonctionnalité zeroDateTimeBehavior=convertToNull. Consultez les CHANGELOGS du site officiel pour les mises à jour sur les corrections de bugs.

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