代码之家  ›  专栏  ›  技术社区  ›  Michał Niklas

Informix JDBC时间戳字符串格式

  •  2
  • Michał Niklas  · 技术社区  · 16 年前

    我有一个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动态服务器3.50.JC3DE的IBM Informix JDBC驱动程序

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Todd    16 年前

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

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