Самопроизвольное изменение даты при сохранении записи

Автор serkondr, 5 ноября 2012, 12:43

0 Пользователи и 1 гость просматривают эту тему.

serkondr

Доброго времени суток!

Использую сервер БД HSQLDB 1.8.0.10 на двух разных машинах - дома и на работе. Подключаюсь к БД с клиентских машин под ООО 3.3.0. 
Клиентские машины есть под вин7 и под Минт11. С недавних пор заметил такой глюк:
Даты, вписываемые в таблицы, самовольно уменьшаются на сутки в момент сохранения записи. Даже если просто открыть таблицу, вписать в пустое поле даты например 04.11.12, потом сохранить запись, и дата сама становится 03.11.12.
Пробовал скопировать таблицы в локальный файл .odb, там делаю то же самое - дата сохраняется верно. Копирую таблицы обратно на сервер - снова та же картина с уменьшением даты. Ничего не понимаю.
Пробовал на двух серверах, на домашнем и на работе - одинаково. Системные даты на серверных машинах одни и те же - верные.  
Заметил, что враньё с датой возникает только если запускаю ООО на клиентской машине с Вин7, а на клиенте под Минт11 всё работает хорошо.
В винде поставил старую версию явы - не повлияло.  
Попробовал подключиться к серверной БД с ещё нескольких компов с виндой. Причём открывал свою базу ещё и в Либре Офисе разных версий - всё то же самое. Если создать локальную БД - всё хорошо.
Если вводить дату в таблице БД на сервере, или даже создать новую таблицу в БД на сервере и в ней вводить дату - дата сама меняется после ввода.
Попробовал подключиться из OOO к БД по сети напрямую, минуя HSQLDB-сервер. Дата вводится верно.
Шайтан, однако?
Теперь все проводки идут вчерашней датой.  :(
Что это? Как с этим справиться?

Yakov

Может, это проблема с настройкой TimeZone из-за отмены перехода на зимнее время?
Но тогда разница должна быть 1 час, а не 1 день.

serkondr

Хм, заметил, что если записываю дату из диапазона апрель-октябрь  например 18.10.12, она вписывается верно! А дата из диапазона с ноября по март пишется на сутки меньше. Причём от года не зависит. Дата из ноября 2011 г. тоже уменьшается на сутки.

Yakov

Тогда точно проблема с настройкой часового пояса.

serkondr

#4
Решение мне подсказали на ява-форуме, вот ссылка:
http://www.javatalks.ru/sutra172704.php#172704
Всем спасибо!

Lenny

#5
Но у меня такая же беда с версией явы 1.7.0_101 (debian 8 stable)
какую же мне ставить?
Есть ещё в настройках базы "Использовать ODBC-совместимый формат даты/времени"
Если я сниму эту галочку, какой тогда будет формат? И поможет ли?
А вообще это, конечно, кривизна несусветная - чтобы дата, хранимая в базе данных, зависела от чего-то, от какого-то там часового пояса и летнего времени, пересохранялась(!), да ещё и СУБД на яве написана. К тому же никто не просил эту базу хранить с датой ещё и время, которое она установила в ноль.
-
Доживу ли я до того светлого дня, когда это поделие дотянется хотя бы до Access-97...

Lenny

Обновление до последнего LibreOffice и до послдней явы на обеих машинах не помогло. Кроме того, проблема задевает с одинаковым успехом как зимние, так и летние месяцы.
Подскажите, у нас кроме глюков с летним/зимним есть ещё какие-то версии?

rami

Попробуйте два варианта:

1. Использовать базу не "HSQLDB встроенная", а "Firebird встроенная"

2. Если используете формат даты/времени TIMESTAMP, разделите его на два поля даты DATE и время TIME

kompilainenn

Цитата: rami от 17 августа 2016, 09:181. Использовать базу не "HSQLDB встроенная", а "Firebird встроенная"
эта штука не доделана до конца. я бы не стал её использовать.
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

kompilainenn

Цитата: Lenny от 14 августа 2016, 20:18Доживу ли я до того светлого дня, когда это поделие дотянется хотя бы до Access-97...
нет, потому что им никто из разработчиков не занимается
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

rami

Цитата: kompilainenn от 17 августа 2016, 11:20
Цитата: rami от 17 августа 2016, 09:181. Использовать базу не "HSQLDB встроенная", а "Firebird встроенная"
эта штука не доделана до конца. я бы не стал её использовать.
Какая разница доделана или нет, лишь бы работала. Пусть пробует, может для его задач подойдёт в самый раз.