После пересылки базы у получателя сдвигается поле даты-времени на 2 часа

Автор dndn, 1 февраля 2015, 15:51

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

dndn

Цитата: rami от  4 февраля 2015, 11:10
Самое интересное, что если создать новую базу не "HSQLDB встроенная", а "Firebird встроенная", то "машина времени" не заводится — время не меняется при изменении часового пояса (проверил в LibreOffice)
Думаю, что это глюк HSQLDB базы.
Цитата: dndn от  4 февраля 2015, 08:04значит где-то ему можно же сказать - не пересчитывать?
В настройках не нашёл (они очень скудные)
Как же много я пропустил... :( Последний раз только слышал, что Либра собирается сделать встроенной базой Firebird.
Т.е. имеет смысл переходить полностью на эту связку? А где можно почитать документацию по Firebird? Интересует прежде всего справочник SQL-инструкций и перечень встроенных функций.  ???

kompilainenn

Цитата: dndn от  5 февраля 2015, 06:32Как же много я пропустил... Грустный Последний раз только слышал, что Либра собирается сделать встроенной базой Firebird.
Т.е. имеет смысл переходить полностью на эту связку?
нет, не имеет. функция крайне экспериментальная. на данный момент там куча ограничений и недоделок
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

dndn

понял. ждем и на досуге штудируем firebird как экспериментальную базу.  :beer:

kompilainenn

firebird хорош сам по себе, он активно развивается, к нему есть куча приблуд и достаточное количество информации...
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

rami

Цитата: dndn от  5 февраля 2015, 06:32Т.е. имеет смысл переходить полностью на эту связку? А где можно почитать документацию по Firebird? Интересует прежде всего справочник SQL-инструкций и перечень встроенных функций.
Имеет смысл поэксперементировать чтобы понять что к чему. Справочник не нужен, поробуйте выполнить то, что знаете.

По поводу основного вопроса мне пришла шальная мысль :o : вы уверены, что вам нужны данные даты—времени в формате TIMESTAMP , а не TEXT или DATE + TEXT?

dndn

Цитата: rami от  5 февраля 2015, 09:47
Цитата: dndn от  5 февраля 2015, 06:32Т.е. имеет смысл переходить полностью на эту связку? А где можно почитать документацию по Firebird? Интересует прежде всего справочник SQL-инструкций и перечень встроенных функций.
Имеет смысл поэксперементировать чтобы понять что к чему. Справочник не нужен, поробуйте выполнить то, что знаете.

По поводу основного вопроса мне пришла шальная мысль :o : вы уверены, что вам нужны данные даты—времени в формате TIMESTAMP , а не TEXT или DATE + TEXT?
По поводу основного вопроса мне тоже пришла шальная мысль  :D а с чего мы взяли, что это баг HSQLDB? А может это фича?
В данном случае в этом поле стоит дата/время начала матчей. Вот если бы я ее проставлял по своему, местному времени, то что бы было после того, как коллега откроет ее в своем часовом поясе? - Правильно, он бы увидел дату/время матчей, но уже для своего часового времени. И у меня, и у него поле показывало бы правильное время!

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

dndn

А как прибавить 1 час к дате?

update "matches" set "mdate" = "mdate" + '01:00:00'

так не получается  >:(

rami

Цитата: dndn от  6 февраля 2015, 11:43а с чего мы взяли, что это баг HSQLDB? А может это фича?
В данном случае в этом поле стоит дата/время начала матчей. Вот если бы я ее проставлял по своему, местному времени, то что бы было после того, как коллега откроет ее в своем часовом поясе? - Правильно, он бы увидел дату/время матчей, но уже для своего часового времени. И у меня, и у него поле показывало бы правильное время!
Во-первых я показываю вам жёлтую карточку 8-)
Новый Год празднуется 31 дек. в 24:00 по местному времени в любой точке мира. Вы создали базу городов (Брисбен GMT+10, Киев GMT+2, Чикаго GMT-6) время начала Нового Года для всех 24:00 по местному времени, переслали другу в Чикаго и что он видит :o у всех время празднования 14:00 (в том числе и в его городе). Это как понимать ???
Кстати, в таблицах Calc такой проблемы нет.
Цитата: dndn от  6 февраля 2015, 12:33А как прибавить 1 час к дате?
А если нужно переслать друзьям во всех часовых поясах не запутаетесь с вычислениями? Не стоит превращать Base в Calc.

dndn

Цитата: rami от  6 февраля 2015, 13:00Новый Год празднуется 31 дек. в 24:00 по местному времени в любой точке мира. Вы создали базу городов (Брисбен GMT+10, Киев GMT+2, Чикаго GMT-6) время начала Нового Года для всех 24:00 по местному времени, переслали другу в Чикаго и что он видит  у всех время празднования 14:00 (в том числе и в его городе). Это как понимать
Ну не во всех случаях, но в некоторых это может быть полезным. Иногда фича, иногда баг - так пойдет? Желтую карточку аннулируете?  :)

Цитата: rami от  6 февраля 2015, 13:00А если нужно переслать друзьям во всех часовых поясах не запутаетесь с вычислениями? Не стоит превращать Base в Calc.
Я имел в виду сделать функцию корректировки времени и посадить ее на кнопочку. По нажатию на кнопочку в отдельном окне пользователь вводит плюс-минус количество часов для пересчета. В Бэйсике я знаю как, там функция DateAdd есть, но так надо сначала 'select', чтоб выбрать, а затем 'update', чтоб обновить. Хотел одним апдейтом сразу обновить - ничего не получилось...  >:(

rami

Цитата: dndn от  7 февраля 2015, 03:53Ну не во всех случаях, но в некоторых это может быть полезным. Иногда фича, иногда баг - так пойдет?
Во всех случаях это очень плохо, нет никакой пользы от этого. Ещё бы сделали результаты матчей в зависимости от того, за какую команду болеет открывающий базу ;D
Цитата: dndn от  7 февраля 2015, 03:53Я имел в виду сделать функцию корректировки времени и посадить ее на кнопочку. По нажатию на кнопочку в отдельном окне пользователь вводит плюс-минус количество часов для пересчета.
Кто-то нажмёт на кнопочку, а кто-то нет, а кто-то дважды...
Для чего вообще нужно время в формате времени, а не текста. Какой смысл в лишних телодвижениях, кнопочках, окошечках, рюшечках?

dndn

Не буду дальше с Вами спорить, просто Вы не знаете всех тонкостей.
Есть множество ресурсов, которые показывают результаты матчей в режиме онлайн. И там даты/времена матчей указываются как раз не для часового пояса местонахождения ресурса, а корректируются в зависимости от местопребывания пользователя. Согласитесь, что так всем без исключения удобнее.
Да и на этом форуме проще наверное каждому в своем профиле изменить настройки показа времени и видеть его в родном формате, чем каждый раз плюсить/минусить от установленного по умолчанию в голове.
Далее. Менять тип поля сейчас накладно. Этот тип учитывается не только в базе, но и в формах, диалогах, коде Бэйсика. Для того, чтобы переделывать сейчас, надо ползать по всей программе, а это займет больше времени и сил, чем добавить одну простую процедуру.
За помощь - спасибо, общими усилиями мы определили одну из особенностей HSQLDB, благодаря чему в дальнейшем будем иметь ее в виду.  :beer: