Я читаю время сообщений некоторых сотрудников из моей таблицы базы данных.Время сохраняется как время (без часового пояса).
Таблица
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