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

Informix JDBC时间戳字符串格式

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

    我有一个Informix数据库,时间戳字段定义为从年到秒。 当我使用jdbc rs.getstring(column)显示此字段时,它使用带毫秒的格式,因此此字段看起来像:

    2008-12-18 13:58:14.0
    

    我希望它只使用年份到第二个字段。我设置环境变量:

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

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

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

    客户端版本: IBM Informix JDBC Driver for IBM Informix动态服务器3.50.jc3de

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

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

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

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