我有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 Dynamic Server版本11.50.TC2DE
客户端版本: 用于IBM Informix Dynamic Server 3.50.JC3DE的IBM Informix JDBC驱动程序
修改 看起来我测试的所有其他JDBC驱动程序(Oracle和PostgreSQL)如果使用getString(),则显示带有毫秒的Timestamp列。所以我使用了托德提出的解决方案。我检查metatdata,如果列是Timestamp,那么我使用getTimestamp()并格式化它。
答案 0 :(得分:3)
如果使用JDBC,则可以使用rs.getDate(column)或rs.getTimestamp(column)方法,这些方法分别返回Date和Timestamp对象。然后你有一个表示时间的对象,而不是直接表达它的String。使用日期或时间戳,您可以使用date formatter将其格式化为您选择的任何字符串表示形式。
更新(阅读以下评论后): 如果使用getDate(),它仍然适用于Timestamp列。它只会将精度降低到秒。这样您就不必检查元数据,只需要知道该列是某种时间戳或日期。