「DB2/400」という呼び方が、古いものかもしれません。今なら、「DB2 for i」なのでしょう。
DB2 for iをAP Server等のリモートで操作する場合、DB側のシステム時間を使う必要があったので、サンプルを書いてみました。
参考にさせていただいたサイトは、こちらです!
特殊なメモリー内テーブルである「sysibm.sysdummy1」にアクセスし、特殊レジスター値(データベース・マネージャーによってアプリケーション・プロセスに対して定義されるストレージ域)を取得します。
サンプル・プログラム
package test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class CurrentDateTest { static Connection conn = null; // JDBC(DB2 for i) final static String DB_AS_DRIVER = "com.ibm.as400.access.AS400JDBCDriver"; final static String DB_AS_CONNECTION = "jdbc:as400://192.168.1.2"; final static String DB_AS_USER = "QUSER"; final static String DB_AS_PASSWORD = "********"; public static void main(final String[] args) throws Exception { try { // JDBCドライバのロード Class.forName(DB_AS_DRIVER); conn = DriverManager.getConnection(DB_AS_CONNECTION, DB_AS_USER, DB_AS_PASSWORD); String sql = "SELECT current date, current time, current timestamp " + "FROM sysibm.sysdummy1"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { System.out.println(rs.getDate(1)); System.out.println(rs.getTime(2)); System.out.println(rs.getTimestamp(3)); } rs.close(); stmt.close(); } catch (SQLException e) { e.printStackTrace(); } finally { conn.close(); } } }
実行結果
2015-01-27 21:50:57 2015-01-27 21:50:57.390661
これは、すばらしい!
SQL経験が浅い私には、目から鱗ですよ!! RDBS万歳!!!