Russian Qt Forum
Ноябрь 22, 2024, 17:43
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Базы данных
>
PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp (Прочитано 11143 раз)
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
:
Июнь 07, 2020, 09:40 »
Есть две базы. Данные из одной сервер через клиент посылает на другую. Время передается в виде qint64 и устанавливается через
Код:
dt.setMSecsSinceEpoch(time)
И в первой и во второй базе время timestamppz (c привязкой к зоне Москва).
В базах время правильное. Но вот в переменной dt на 1 час меньше.
PostgreSQL 8.1
Записан
Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #1 :
Июнь 07, 2020, 12:18 »
Не совсем понял проблему. Ты берешь из одной БД поле, помещаешь его в QDateTime и засовываешь в другую БД этот QDateTime? Можешь немного подробнее расписать? Проблема с таймзонами это довольно частая проблема при проектировании.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #2 :
Июнь 07, 2020, 12:48 »
Надо проверять, есть ли такая запись с таким же временем. А как проверять, если время пришедшей записи, приведенное к QDateTime на данном компьютере отличается от времени, которое в базе на 1 час. Как будет на других компьютерам с другими временными зонами не проверял
Записан
Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #3 :
Июнь 07, 2020, 12:55 »
В запросе к базе время в формате Qt::ISODate в текстовом виде отличается от реального времени, которое показывает PGAdmin на 1 час
Записан
Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #4 :
Июнь 07, 2020, 13:02 »
Все равно нифига не понял.
Откуда приходит запись?
Вообще, если ты можешь изменить структуру БД, я преложил бы тебе хранить в ней unixtime в UTC. То есть, int32 поле, куда ты будешь вносить dt.toUtc().toSecsSinceEpoch()
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #5 :
Июнь 07, 2020, 16:09 »
Я так и сделал. Храню в время в милисекундах, все нормально заработало, так как и сервера и клиенты настроены на Москву.
Записан
Как мало времени и как много нужно узнать
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #6 :
Июнь 07, 2020, 16:11 »
Только поле int8, так как точность до милисекунд нужна
Записан
Как мало времени и как много нужно узнать
ssoft
Программист
Offline
Сообщений: 584
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #7 :
Июнь 08, 2020, 07:29 »
Цитата: Примерный ученик от Июнь 07, 2020, 16:09
Я так и сделал. Храню в время в милисекундах, все нормально заработало, так как и сервера и клиенты настроены на Москву.
А почему бы не использовать UTC? Тогда и с локальным временем и настройкой на Москву проблем не будет.
Записан
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #8 :
Июнь 10, 2020, 15:27 »
Требование заказчика: серверы и клиенты имеют часовой пояс Москвы
Записан
Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #9 :
Июнь 10, 2020, 16:00 »
Это понятно. Ты держи в базе UTC. а для вывода конвертируй и не будет тебе проблем.. А твой час это скорее всего летнее или зимнее время где-то. Не все компы имеют обновления с последней информацией о часовых поясах.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #10 :
Июнь 10, 2020, 18:26 »
Цитата: Пантер от Июнь 10, 2020, 16:00
Это понятно. Ты держи в базе UTC. а для вывода конвертируй и не будет тебе проблем.. А твой час это скорее всего летнее или зимнее время где-то. Не все компы имеют обновления с последней информацией о часовых поясах.
Это имело бы смысл, если бы в системе не все были в одном часовом поясе.
И да, проблема в машине с Виндой, которая почему то упорно считала, что в России сейчас летнее время. Подправили
Записан
Как мало времени и как много нужно узнать
ssoft
Программист
Offline
Сообщений: 584
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #11 :
Июнь 11, 2020, 14:43 »
Цитата: Примерный ученик от Июнь 10, 2020, 18:26
Это имело бы смысл, если бы в системе не все были в одном часовом поясе.
И да, проблема в машине с Виндой, которая почему то упорно считала, что в России сейчас летнее время. Подправили
И все-таки стоит прислушаться к опыту других). Храните все в UTC и будет счастье.
Это никак не нарушает желания заказчика и не доставляет лишних проблем для разработчика.
Записан
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #12 :
Июнь 15, 2020, 07:43 »
На самом деле без разницы, в каком часовом поясе хранить время. Главное ЗНАТЬ И ВВОДИТЬ поправку к текущему поясу.
Записан
Как мало времени и как много нужно узнать
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #13 :
Июнь 15, 2020, 08:03 »
Нуу, не совсем... Врем на компе могут менять. Опять же, переход на зимнее или летнее... Вот узнай потом какое время было на компе год назад когда добавляли запись. А если хранить в UTC то становится пофиг на это вот все.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Примерный ученик
Бывалый
Offline
Сообщений: 450
И это не всегда помогает
Re: PostgreSQL QT5.4 пересылка данных между двумя базами timestamp
«
Ответ #14 :
Июнь 23, 2020, 15:24 »
актуальность данных максимум неделя, все серверы синхронизируются по NTP от ведущего сервера. Ну а на будущее, согласен, Гринвич рулит.
Записан
Как мало времени и как много нужно узнать
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...