В базе данных 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: 93
end_time is of type: 93
AS STRING start_time: 2019-02-19 23:44:23.000000, end_time: 2019-02-19 23:44:29.000000
AS TIMESTAMP start_time: 2019-02-19 23:44:23.0, end_time: 2019-02-19 23:44:29.0
start_time is of type: 93
end_time is of type: 93
AS STRING start_time: 2019-02-20 00:0-53:46.000000, end_time: 2019-02-20 00:0-53:53.000000
AS TIMESTAMP start_time: 2019-02-19 23:07:46.0, end_time: 2019-02-19 23:07:53.0
start_time
и end_time
имеют тип 93 или метку времени.
Обратите внимание, как второе событие, которое должно начаться в 00:07, переместилось на час назад в 23: 07
Где я ошибаюсь, чтобы получить это одночасовое смещение?