YEAR TO SECOND として定義されたタイムスタンプ フィールドを持つ Informix データベースがあります。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 JDBC Driver for IBM Informix Dynamic Server 3.50.JC3DE
編集 getString() を使用すると、テストした他のすべての JDBC ドライバー (Oracle および PostgreSQL) がタイムスタンプ列をミリ秒単位で表示するようです。そこで、Todd が提案したソリューションを使用しました。metatdata を確認し、列が Timestamp の場合は getTimestamp() を使用してフォーマットします。