Значение времени SQL между 0:00 и 00:59 установлено равным 23: хх - PullRequest
0 голосов
/ 19 октября 2018

Я читаю время сообщений некоторых сотрудников из моей таблицы базы данных.Время сохраняется как время (без часового пояса).

Таблица

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: хх.Чтение с помощью SQL central дает мне правильные значения времени.

Приложение работает на Tomcat 8, база данных - SQL Anywhere 17

Проблема возникает при использовании Hibernate (hql / native SQL query)а также 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
...