如何更改 DBeaver 时区/如何阻止 DBeaver 转换日期和时间
How to change DBeaver timezone / How to stop DBeaver from converting date and time
当我将 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?
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 显示。
我找到了另一个解决方案:
Setting dbeaver.ini
file in DBeaver root directory.
打开文件:
-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
更新 2021-04-05:根据最近的评论,我需要明确该解决方案仅适用于 Clickhouse DB。此外,这是一个非常古老的答案,请记住,它目前是 99% 过时的解决方案。
我认为它在以前的某个版本中已修复。
只需转到设置 -> 编辑器 -> 数据格式和 select 'Use native date/time format' 复选框。
如果这是关于时区的 JDBC 驱动程序问题:
右键单击连接以打开连接设置
更改时区
或者您也可以更改服务器时区驱动程序 属性
如果您想查看 Selects
的时区,可以转到 DBeaver 首选项:
首选项
- 单击 Type,并将其更改为 Timestamp
- 在 Pattern Value 中添加终止符“Z z”并查看 Sample 结果如下:2019-11-06 07:38:54 -0300 BRT
- 点击应用,然后应用并关闭
- 完成:)
在Mac
- 转到 Finder > 应用程序
- 右键单击 DBeaver 并select显示包内容
- 打开Contents\Eclipse\dbeaver.ini
- 在 -vmargs 行之后,添加:-Duser.timezone=UTC
- 保存文件并重启 DBeaver
限制:每次版本升级都必须重做。
Windows
- 进入DBeaver安装目录C:\Program Files\DBeaver
- 打开dbeaver.ini
- 在 -vmargs 行之后,添加:-Duser.timezone=UTC
- 保存文件并重启 DBeaver
来源:This blog
对于 Linux
中的 DBeaver
如果是 运行,请退出 DBeaver。
编辑 /usr/share/dbeaver/dbeaver.ini
,将 -Duser.timezone=UTC
添加到 -vmargs
部分。例如:
-vmargs
-XX:+IgnoreUnrecognizedVMOptions
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=11
-Xms64m
-Xmx1024m
-Duser.timezone=UTC
打开 DBeaver 并查看 UTC 时间戳。
查看完整时间戳值
- Window > 首选项
- 编辑器 > 数据编辑器 > 数据格式
- 勾选'Disable date/time formatting'
之前:2021-04-19 16:14:23
之后:2021-04-19 16:14:23.056178+00
使用 PostgreSQL 测试。
从今天开始 (DBeaver 21.3.2 CE),您需要转到 Window > 首选项。
在对话框 pop-up window 中选择:编辑器 > 数据编辑器 > 格式,然后在格式框的下拉列表中选择时间戳并单击时间轴行。
Right-click 并打印 UTC
单击右下角的“应用并关闭”按钮。
完成!
当我将 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?
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 显示。
我找到了另一个解决方案:
Setting
dbeaver.ini
file in DBeaver root directory.
打开文件:
-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
更新 2021-04-05:根据最近的评论,我需要明确该解决方案仅适用于 Clickhouse DB。此外,这是一个非常古老的答案,请记住,它目前是 99% 过时的解决方案。
我认为它在以前的某个版本中已修复。
只需转到设置 -> 编辑器 -> 数据格式和 select 'Use native date/time format' 复选框。
如果这是关于时区的 JDBC 驱动程序问题:
右键单击连接以打开连接设置
更改时区
或者您也可以更改服务器时区驱动程序 属性
如果您想查看 Selects
的时区,可以转到 DBeaver 首选项:
首选项
- 单击 Type,并将其更改为 Timestamp
- 在 Pattern Value 中添加终止符“Z z”并查看 Sample 结果如下:2019-11-06 07:38:54 -0300 BRT
- 点击应用,然后应用并关闭
- 完成:)
在Mac
- 转到 Finder > 应用程序
- 右键单击 DBeaver 并select显示包内容
- 打开Contents\Eclipse\dbeaver.ini
- 在 -vmargs 行之后,添加:-Duser.timezone=UTC
- 保存文件并重启 DBeaver
限制:每次版本升级都必须重做。
Windows
- 进入DBeaver安装目录C:\Program Files\DBeaver
- 打开dbeaver.ini
- 在 -vmargs 行之后,添加:-Duser.timezone=UTC
- 保存文件并重启 DBeaver
来源:This blog
对于 Linux
中的 DBeaver如果是 运行,请退出 DBeaver。
编辑
/usr/share/dbeaver/dbeaver.ini
,将-Duser.timezone=UTC
添加到-vmargs
部分。例如:-vmargs -XX:+IgnoreUnrecognizedVMOptions --add-modules=ALL-SYSTEM -Dosgi.requiredJavaVersion=11 -Xms64m -Xmx1024m -Duser.timezone=UTC
打开 DBeaver 并查看 UTC 时间戳。
查看完整时间戳值
- Window > 首选项
- 编辑器 > 数据编辑器 > 数据格式
- 勾选'Disable date/time formatting'
之前:2021-04-19 16:14:23
之后:2021-04-19 16:14:23.056178+00
使用 PostgreSQL 测试。
从今天开始 (DBeaver 21.3.2 CE),您需要转到 Window > 首选项。 在对话框 pop-up window 中选择:编辑器 > 数据编辑器 > 格式,然后在格式框的下拉列表中选择时间戳并单击时间轴行。
Right-click 并打印 UTC
单击右下角的“应用并关闭”按钮。 完成!