【问题标题】:How to change DBeaver timezone / How to stop DBeaver from converting date and time如何更改 DBeaver 时区 / 如何阻止 DBeaver 转换日期和时间
【发布时间】:2017-07-26 09:57:19
【问题描述】:

当我将 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?

【问题讨论】:

    标签: timezone dbeaver


    【解决方案1】:

    我找到了另一个解决方案:

    在 DBeaver 根目录下设置dbeaver.ini 文件。

    打开文件:

    -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
    

    【讨论】:

    • 如果服务器时区不是 UTC,或者如果您使用具有不同时区的多个服务器,这将不起作用。 See this answer
    • 这为我在 Windows 10 上使用 CockroachDB 修复了“错误:参数“TimeZone”的无效值:“Europe/Berlin””。
    【解决方案2】:

    DBeaver 使用已安装计算机中的时间,因此更改时钟并重新启动 DBeaver 即可。但是有一种方法可以只对 DBeaver 进行。

    • 关闭 DBeaver。
    • 转到 DBeaver 快捷方式。大概就在这里:

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

    • 右键单击它,选择属性,然后在 Target 框中将-vmargs -Duser.timezone=UTC 添加到末尾,结果如下:

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

    • 启动 DBeaver,时间现在以 UTC 显示。

    【讨论】:

    • 向程序提供这些参数对我不起作用,但我能够修改 dbeaver.ini 并在其中添加 vmarg。然后它起作用了。
    • 我必须在 dbeaver.ini-vmargs 下方的行中添加 -Duser.timezone=UTC,然后重新启动应用程序。把它放在同一条线上是行不通的。并且这是在 MacOS 上的应用程序包中,因此在下一次应用程序更新期间它肯定会被覆盖。
    • @JohnLemberger 将配置选项放在与-vmargs 相同的行上是行不通的:因为 DBeaver 是基于 Eclipse 的,所以适用Eclipse.ini 设置和规则。
    • 您能举一个在 dbeaver.ini 中设置欧洲/柏林时区的例子吗?我试过 -vmargs -Duser.timezone=Europe/Berlin
    • @LeeviL 出于问题中所述的原因,我不建议使用 UTC 以外的任何东西。但是对于您的情况,如果 Europe/Berlin 不起作用,请尝试 CET,或 +01:00 或相关。
    【解决方案3】:

    2021-04-05 更新:根据最近的 cmets,我需要明确指出,此解决方案仅适用于 Clickhouse DB。此外,这是一个非常旧的答案,请记住,它目前是 99% 过时的解决方案。

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

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

    【讨论】:

    • 这对我不起作用,日期和时间仍会转换为当地时间
    • @Wes 我已经仔细检查了解决方案,它对我有用。但这适用于 DBeaver 5.3.2 和 Clickhouse 数据库,适用于 DateTime 类型的字段
    • 如果有帮助,我正在 Postgres 中工作,并在一个纪元时间戳上运行 to_timestamp()。上面的解决方案对我有用。
    • 不,这不起作用。它只影响时间戳的格式(即“YYYY-MM-DD”与“MM-DD-YYYY”等),而不影响 显示(即 UTC 与您的本地时区)。
    【解决方案4】:

    在 Mac 上

    1. 转到 Finder > 应用程序
    2. 右键单击 DBeaver 并选择显示包内容
    3. 打开目录\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

    来源:This blog

    【讨论】:

      【解决方案5】:

      如果您想查看Selects 的时区,可以转到DBeaver Preferences

      偏好

      1. 点击Type,将其更改为Timestamp
      2. Pattern Value中添加终止符“Z z”并查看Sample结果如下:2019-11-06 07:38:54 -0300 BRT李>
      3. 点击应用,然后应用并关闭
      4. 完成:)

      【讨论】:

        【解决方案6】:

        对于 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
          
        3. 打开 DBeaver 并查看 UTC 时间戳。

        查看完整的时间戳值

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

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

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

        用 PostgreSQL 测试。

        【讨论】:

          【解决方案7】:

          如果这是关于时区的 JDBC 驱动程序问题:
          右键点击连接打开连接设置

          更改时区

          或者您也可以更改服务器时区驱动程序属性

          【讨论】:

            【解决方案8】:

            从今天开始(DBeaver 21.3.2 CE),您需要转到“窗口”>“首选项”。 在对话框弹出窗口中选择:Editors > Data Editor > Formats,然后在 Format 框架的下拉菜单中选择 Timestamp 并单击 Timesone 行。

            点击此处并打印UTC

            点击右下角的“应用并关闭”按钮。 完成!

            【讨论】:

              猜你喜欢
              • 2019-12-09
              • 1970-01-01
              • 2020-11-20
              • 1970-01-01
              • 2018-12-24
              • 2021-10-04
              • 1970-01-01
              • 2012-01-30
              • 1970-01-01
              相关资源
              最近更新 更多