0:00和00:59之间的SQL时间值设置为23:xx

时间:2018-10-19 08:57:37

标签: java sql jdbc sqlanywhere

我从数据库表中读取了一些员工发帖的时间。时间存储为时间(无时区)。

CREATE TABLE "dba"."mytable" (
    "id" INTEGER NOT NULL DEFAULT AUTOINCREMENT UNIQUE,
    "employeenr" CHAR(7 CHAR) NOT NULL,
    "time" TIME NOT NULL
    PRIMARY KEY ( "id" ASC)
) IN "system";

表数据看起来像

id  time    employeenr
1   09:35   123
2   10:00   123
3   00:30   123

从我的应用程序中读取时间在0:00到00:59之间的任何数据会导致时间值为23:xx。 使用SQL Central读取它可以为我提供正确的时间值。

应用程序在Tomcat 8上运行,数据库为SQL Anywhere 17

使用Hibernate(hql /本机SQL查询)以及java.sql时会发生此问题。

String sql = "select * from mytable order by time";

Statement st = c.createStatement();
ResultSet result = st.executeQuery(sql);

while (result.next()) {
    String nr = result.getString("employeenr");
    Time time = result.getTime("time");
    Date date = result.getDate("time");

    System.out.println(nr + " " + time + " / " + date);
}

结果

123 23:30:00 / 0001-01-01
123 09:35:00 / 0001-01-01
123 10:00:00 / 0001-01-01

0 个答案:

没有答案