如何更改DBeaver时区/如何阻止DBeaver转换日期和时间

Edu*_*Edu 17 timezone dbeaver

当我使用带Cassandra的DBeaver时,它显示+01:00的偏移量,即使数据以Date或Times格式存储,没有任何时区.这导致一些奇怪的查询,如下所示:

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

Time
00:00:00
23:00:00
22:00:00
...
01:00:00
Run Code Online (Sandbox Code Playgroud)

那么,如何删除转换或将时区设置为UTC?

Gab*_*abe 57

v22.1.0 在 UI 中添加了此首选项(不再修改.ini文件)。

在窗口 -> 首选项中。转到用户界面并更改客户端时区。重新启动 dbeaver。

Github PR在这里:https://github.com/dbeaver/dbeaver/pull/16467

在此输入图像描述

  • 最好的选择。现在应该接受这个答案。 (3认同)
  • 简单又实用,请点赞! (2认同)
  • 我不需要任何时区转换,即使是 UTC,但查看存储在数据库中的时间戳。尽管我更喜欢 DBeaver 而不是 pgAdmin,但在执行时区敏感操作时我被迫使用 pgAdmin,因为我不确定 DBeaver 的“有用”转换在哪里启动。您能告诉我如何完全禁用该功能吗? (2认同)

Edu*_*Edu 16

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格式显示.

  • 我不得不在__dbeaver.ini__中`-vmargs`下面的行上添加`-Duser.timezone = UTC`,然后重新启动应用程序.把它放在同一条线上是行不通的.这是在MacOS上的应用程序包中,因此在下一次应用程序更新期间它必然会被覆盖. (4认同)
  • 将这些参数提供给程序对我来说不起作用,但我能够修改**dbeaver.ini**并在那里添加`vmarg`.然后它奏效了. (3认同)

Arc*_*hon 15

我找到了另一个解决方

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
Run Code Online (Sandbox Code Playgroud)


arc*_*don 11

在 Mac 上

  1. 转到 Finder > 应用程序
  2. 右键单击 DBeaver 并选择显示包内容
  3. 打开 Contents\Eclipse\dbeaver.ini
  4. 在 -vmargs 行之后,添加: -Duser.timezone=UTC
  5. 保存文件并重启 DBeaver

限制:您必须为每次版本升级重做此操作。

视窗

  1. 转到 DBeaver 安装目录 C:\Program Files\DBeaver
  2. 打开 dbeaver.ini
  3. 在 -vmargs 行之后,添加: -Duser.timezone=UTC
  4. 保存文件并重启 DBeaver

来源:本博客


val*_*nmk 7

我认为它在某些以前的版本中已修复。

只需转到“设置”->“编辑器”->“数据格式”,然后选择“使用本地日期/时间格式”复选框。

在此处输入图片说明

  • 不,这**_不起作用_**。它仅影响时间戳的**_format_**(即“YYYY-MM-DD”与“MM-DD-YYYY”等),而不影响显示的**_value_**(即UTC与您的时间)当地时区)。 (8认同)
  • 这对我不起作用,日期和时间仍然转换为当地时间 (3认同)

Bre*_*ira 7

如果你想查看你的时区Selects,你可以去DBeaver Preferences

喜好 在此处输入图片说明

  1. 单击Type,并将其更改为Timestamp
  2. 模式值中添加终止“Z z”并查看示例结果,如下所示:2019-11-06 07:38:54 -0300 BRT
  3. 点击Apply,然后Apply 和 Close
  4. 完毕 :)


Dav*_*ver 5

对于 Linux 中的 DBeaver

  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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 打开 DBeaver 并查看 UTC 中的时间戳。

查看完整的时间戳值

  1. 窗口 > 首选项
  2. 编辑器 > 数据编辑器 > 数据格式
  3. 选中“禁用日期/时间格式”

前: 2021-04-19 16:14:23

后: 2021-04-19 16:14:23.056178+00

用 PostgreSQL 测试过。