在 Sybase 數據庫中有一個數據庫過程(我無權訪問,因此無法查看或編輯它的源代碼),我查詢有關事件的信息,并且這些事件有開始和結束日期。編輯:當我查詢一個新創建的日期表時,也會發生這種效果,創建如下:create table jvo_test.test_dates(dt datetime not null primary key)insert into jvo_test.test_dates(dt) select dateadd(mi, (id-1) *30, '2019-03-06 00:00:00') from rle.row_generator where id between 1 and 48結束編輯問題是,當這些事件發生在午夜后一小時(所以在 00:00 - 01:00 范圍內)時,生成的時間戳會在過去一個小時內跳回???示例:現在程序返回兩個事件,一個在 23:44,另一個在 00:07代碼:Connection c = ds.getConnection();String sql = "procedure_name 'param1', 'param2', 'param3'";PreparedStatement ps = c.prepareStatement(sql);ResultSet rs = ps.executeQuery();ResultSetMetaData rsmd = rs.getMetaData();while (rs.next()) { for(int i = 1; i < rsmd.getColumnCount(); i++) { log.debug("{} is of type: {}", rsmd.getColumnName(i), rsmd.getColumnType(i)); } log.debug("AS STRING start_time: {}, end_time: {}", rs.getString("start_time"),rs.getString("end_time")); log.debug("AS TIMESTAMP start_time: {}, end_time: {}", rs.getTimestamp("start_time"),rs.getTimestamp("end_time"));}這導致以下日志行start_time is of type: 93end_time is of type: 93AS STRING start_time: 2019-02-19 23:44:23.000000, end_time: 2019-02-19 23:44:29.000000AS TIMESTAMP start_time: 2019-02-19 23:44:23.0, end_time: 2019-02-19 23:44:29.0start_time is of type: 93end_time is of type: 93AS STRING start_time: 2019-02-20 00:0-53:46.000000, end_time: 2019-02-20 00:0-53:53.000000AS TIMESTAMP start_time: 2019-02-19 23:07:46.0, end_time: 2019-02-19 23:07:53.0start_time并且end_time都是類型 93 或時間戳。請注意,應該從 00:07 開始的第二個事件如何跳到過去一個小時到 23:07這個一小時的偏移量我哪里錯了?
1 回答

慕仙森
TA貢獻1827條經驗 獲得超8個贊
通過將 JDBC 數據庫驅動程序從內部版本 26502 更新到 27361 解決了問題
要找出驅動程序的版本,請執行
java -jar jconn4.jar
舊版本將此作為第一行輸出:
jConnect (TM) for JDBC(TM)/7.00(Build 26502)/P/EBF17993/JDK16/Thu Jun 3 3:09:09 2010
新版本輸出如下:
jConnect (TM) for JDBC(TM)/7.07 SP139 (Build 27361)/P/EBF27161/JDK 1.6.0/jdbcmain/OPT/Thu Jul 27 02:39:00 PDT 2017
添加回答
舉報
0/150
提交
取消