Как изменить часовой пояс DBeaver / Как запретить DBeaver конвертировать дату и время

Когда я использую DBeaver с Cassandra, он показывает смещение +01:00, даже если данные хранятся в форматах даты или времени, которые не имеют часовых поясов. Это приводит к таким странным запросам, как этот:

SELECT "Time"
FROM keyspace."Table"
ORDER BY "Time" DESC;

Time
00:00:00
23:00:00
22:00:00
...
01:00:00

Итак, как мне удалить конверсии или установить часовой пояс на UTC?


person Edu    schedule 26.07.2017    source источник


Ответы (7)


Я нашел другое решение:

Установка файла dbeaver.ini в корневой каталог DBeaver.

Откройте файл:

-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.551.v20171108-1834
-showsplash
# START: change jre version, not using the one in %JAVA_HOME%
-vm 
D:\ArPortable\Java\jdk1.8.0_171\jre\bin\server\jvm.dll
# END
# JVM settings
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
-Xms64m
-Xmx1024m
# time zone
-Duser.timezone=UTC
# language
-Duser.language=en
person Archon    schedule 30.09.2018
comment
Это не работает, если часовой пояс сервера отличается от UTC или если вы используете несколько серверов с разными часовыми поясами. см. этот ответ - person Evan; 18.06.2019
comment
Это исправило ОШИБКУ: неверное значение параметра TimeZone: Europe/Berlin для меня при использовании CockroachDB в Windows 10. - person Ferdy Pruis; 29.01.2020

DBeaver использует время на установленном компьютере, поэтому изменение часов и перезапуск DBeaver работает. Но есть способ сделать это только для DBeaver.

  • Закройте DBeaver.
  • Перейдите к ярлыку DBeaver. Вероятно, это здесь:

    C:\ProgramData\Microsoft\Windows\Start Menu\Programs\DBeaver

  • Щелкните его правой кнопкой мыши, выберите "Свойства" и в поле Цель добавьте -vmargs -Duser.timezone=UTC в конец, в результате чего получится что-то вроде этого:

    "C:\Program Files\DBeaver\dbeaver.exe" -vmargs -Duser.timezone=UTC

  • Запустите DBeaver, и время появится в формате UTC.

person Edu    schedule 26.07.2017
comment
Предоставление этих параметров программе мне не помогло, но я смог просто изменить dbeaver.ini и добавить туда vmarg. Тогда это сработало. - person Shibumi; 13.04.2018
comment
Мне пришлось добавить -Duser.timezone=UTC в строку чуть ниже -vmargs в dbeaver.ini и перезапустить приложение. Поместить его в одну строку не получилось. И это было внутри пакета приложения в MacOS, поэтому оно обязательно будет перезаписано во время следующего обновления приложения. - person John Lemberger; 28.06.2018
comment
@JohnLemberger Ожидается, что размещение параметра конфигурации в той же строке, что и -vmargs, не работает: поскольку DBeaver основан на Eclipse, Eclipse.ini. - person watery; 23.01.2019
comment
Можете ли вы привести пример установки часового пояса Европы/Берлина в dbeaver.ini? Я попробовал -vmargs -Duser.timezone=Европа/Берлин - person Leevi L; 08.04.2020
comment
@LeeviL Я бы не советовал использовать что-либо, кроме UTC, по причинам, указанным в вопросе. Но в вашем случае, если Европа/Берлин не работает, попробуйте CET или +01:00 или что-то подобное. - person Edu; 09.04.2020
comment
Это какое-то сумасшествие, что нет способа указать DBeaver использовать часовой пояс сервера таким образом, чтобы он сохранялся в обновлениях. - person Alex Totheroh; 04.06.2020

ОБНОВЛЕНИЕ 05.04.2021: На основании последних комментариев мне нужно уточнить, что это решение подходит только для Clickhouse DB. Кроме того, это очень старый ответ, имейте в виду, что в настоящее время это устаревшее решение на 99%.

Я думаю, что это было исправлено в какой-то предыдущей версии.

Просто перейдите в «Настройки» -> «Редакторы» -> «Форматы данных» и установите флажок «Использовать собственный формат даты/времени».

введите здесь описание изображения

person valentinmk    schedule 28.01.2019
comment
Это не работает для меня, даты и время по-прежнему преобразуются в местное время. - person Wes; 13.02.2019
comment
@Wes У меня есть дважды проверенное решение, и оно работает для меня. Но это работает для базы данных DBeaver 5.3.2 и Clickhouse для полей с типом DateTime. - person valentinmk; 15.02.2019
comment
Если это поможет, я работаю в Postgres и запускаю to_timestamp() с отметкой времени эпохи. Однако приведенные выше решения сработали для меня. - person Wes; 17.02.2019
comment
Нет, это не работает. Это влияет только на формат меток времени (т. е. ГГГГ-ММ-ДД по сравнению с ММ-ДД-ГГГГ и т. д.), а не на значение. отображается (т. е. UTC по сравнению с вашим местным часовым поясом). - person Mr. Lance E Sloan; 26.03.2020

На Mac

  1. Перейдите в Finder > Приложения.
  2. Щелкните правой кнопкой мыши DBeaver и выберите «Показать содержимое пакета».
  3. Откройте Contents\Eclipse\dbeaver.ini.
  4. После строки -vmargs добавьте следующее: -Duser.timezone=UTC
  5. Сохраните файл и перезапустите DBeaver.

Ограничение: вам придется повторять это для каждого обновления версии.

Windows

  1. Перейдите в каталог установки DBeaver C:\Program Files\DBeaver.
  2. Откройте dbeaver.ini
  3. После строки -vmargs добавьте следующее: -Duser.timezone=UTC
  4. Сохраните файл и перезапустите DBeaver.

Источник: Этот блог

person arcseldon    schedule 19.03.2020
comment
вообще не работал - person Aadam; 26.02.2021

Если вы хотите увидеть часовой пояс вашего Selects, вы можете перейти в Настройки DBeaver:

Настройки введите здесь описание изображения

  1. Нажмите Тип и измените его на Timestamp.
  2. В Pattern Value добавьте завершение " Z z" и посмотрите результат Sample, подобный этому: 2019-11-06 07:38:54 -0300 BRT.
  3. Нажмите Применить и Применить и закрыть.
  4. Готово :)
person Breno Medeiros de Oliveira    schedule 06.11.2019

Если это проблема драйвера JDBC в отношении часового пояса:
щелкните правой кнопкой мыши подключение, чтобы открыть настройки подключения.

щелкните правой кнопкой мыши подключение, чтобы открыть настройки подключения

изменить часовой пояс изменить часовой пояс для подключения

ИЛИ вы также можете изменить свойство драйвера часового пояса сервера ИЛИ вы можете изменить свойство драйвера часового пояса сервера

person Aashutosh Taikar    schedule 08.04.2019

Для DBeaver в Linux

  1. Закройте DBeaver, если он запущен.

  2. Отредактируйте /usr/share/dbeaver/dbeaver.ini, добавив -Duser.timezone=UTC в раздел -vmargs. Например.:

     -vmargs
     -XX:+IgnoreUnrecognizedVMOptions
     --add-modules=ALL-SYSTEM
     -Dosgi.requiredJavaVersion=11
     -Xms64m
     -Xmx1024m
     -Duser.timezone=UTC
    
  3. Откройте DBeaver и просмотрите метки времени в формате UTC.

Просмотр полных значений метки времени

  1. Окно › Настройки
  2. Редакторы › Редактор данных › Форматы данных
  3. Установите флажок «Отключить форматирование даты/времени».

До: 2021-04-19 16:14:23

После: 2021-04-19 16:14:23.056178+00

Проверено с PostgreSQL.

person David Oliver    schedule 19.04.2021