Question

J'ai une base de données Informix avec un champ d'horodatage défini comme "ANNÉE EN SECOND". Quand je montre ce champ en utilisant JDBC rs.getString (column), il utilise un format avec des millisecondes pour que ce champ ressemble à:

2008-12-18 13:58:14.0

Je voudrais qu’il utilise uniquement les champs ANNÉE À SECOND. J'ai défini la variable d'environnement:

GL_DATETIME=%Y-%m-%D %H:%M:%S

mais même alors j'ai eu miliseconds. Les programmes utilisant ODBC ne montrent pas milisecond. Comment recevoir la chaîne TIMESTAMP " ANNÉE À LA SECONDE " seulement? Dans mon programme, je peux vérifier les métadonnées si le champ est TIMESTAMP, puis couper ".0", mais je pense qu’il devrait y avoir un moyen plus simple.

Version du serveur: IBM Informix Dynamic Server version 11.50.TC2DE

Version du client: Pilote JDBC IBM Informix pour IBM Informix Dynamic Server 3.50.JC3DE

MODIFIER Il semble que tous les autres pilotes JDBC que j'ai testés (Oracle et PostgreSQL) affichent des colonnes Timestamp avec des millisecondes si j'utilise getString (). J'ai donc utilisé la solution proposée par Todd. Je vérifie les métadonnées et si la colonne est Timestamp, j’utilise getTimestamp () et le formate.

Était-ce utile?

La solution

Si vous utilisez JDBC, vous pouvez utiliser les méthodes rs.getDate (column) ou rs.getTimestamp (column), qui renvoient respectivement les objets Date et Timestamp. Ensuite, vous avez un objet représentant le temps, plutôt qu'une chaîne l'exprimant directement. Avec Date ou Horodatage, vous pouvez utiliser un date formateur pour le formater à n’importe quelle représentation sous forme de chaîne de l’heure choisie.

Mettre à jour (après avoir lu les commentaires ci-dessous): Si vous utilisez getDate (), cela fonctionnera toujours pour les colonnes Timestamp. Cela réduira simplement la précision à la seconde. De cette façon, vous n'avez pas à vérifier les métadonnées, il vous suffit de savoir que la colonne est une sorte d'horodatage ou de date.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top