jdbc - Informix JDBC 时间戳字符串格式

标签 jdbc format timestamp informix

我有 Informix 数据库,其时间戳字段定义为 YEAR TO SECOND。 当我使用 JDBC rs.getString(column) 显示此字段时,它使用毫秒格式,因此此字段如下所示:

2008-12-18 13:58:14.0

我希望它仅使用 YEAR TO SECOND 字段。我设置环境变量:

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

但即便如此我也得到了毫秒。使用 ODBC 的程序不显示毫秒。如何仅接收 TIMESTAMP 字符串“YEAR TO SECOND”?在我的程序中,我可以检查元数据,如果字段是TIMESTAMP,然后剪切“.0”,但我认为应该有更简单的方法。

服务器版本: IBM Informix 动态服务器版本 11.50.TC2DE

客户端版本: 用于 IBM Informix Dynamic Server 3.50.JC3DE 的 IBM Informix JDBC 驱动程序

编辑 如果我使用 getString(),看起来我测试的所有其他 JDBC 驱动程序(Oracle 和 PostgreSQL)都会显示带有毫秒的时间戳列。所以我使用了托德提出的解决方案。我检查元数据,如果列是时间戳,那么我使用 getTimestamp() 并格式化它。

最佳答案

如果您使用 JDBC,则可以使用 rs.getDate(column) 或 rs.getTimestamp(column) 方法,它们分别返回 Date 和 Timestamp 对象。然后你有一个代表时间的对象,而不是直接表达它的字符串。对于日期或时间戳,您可以使用 date formatter将其格式化为您选择的该时间的任何字符串表示形式。

更新(阅读下面的评论后): 如果您使用 getDate(),它仍然适用于时间戳列。它只会将精度降低到秒。这样您就不必检查元数据,您只需知道该列是某种时间戳或日期。

关于jdbc - Informix JDBC 时间戳字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/406777/

相关文章:

java - 哪个 Java 线程负责 PostgreSQL 数据库进程?

fortran - 错误: Unexpected element '*' in format string at (1)

parsing - 根据初始字符串变量,每隔第三行或第二行组织多行文本

c# - 在使用 Json.Net 的 WebAPI 2 中,SQL Server 时间戳序列化但不反序列化

java - Spring JDBC 中 Hibernate 模型的等价物是什么

java - 从 NetBeans 将 Java 连接到远程 DB2

java - 使用 JDBC 准备好的语句插入时出错

numbers - 谷歌图表 - 格式编号

php - 将 Twitter-API 日期时间更改为时间戳的最佳方法

mysql - hibernate 和 MySQL : UTC datetime