dbvisualizer - DBVisualizer 在包含“0001-01-01”的日期字段上显示空值
问题描述
我在 DbVis 中发出了一条 SQL 语句:
select vestdate, name from person where vestdate is not null
并得到了许多结果,其中 DbVisualizer 将vestdate 显示为(null)
!
调查后发现,vestdate 是'0001-01-01'
,所以查询正确返回了这些记录,但 DbVisualizer将它们显示为(null)
。
我刚刚从 windows 8 切换到 windows 10。
它适用于 windows 8(显示 '0001-01-01'),但不适用于 windows 10(显示 null):
Product: DbVisualizer Pro 11.0.4 [Build #3103]
OS: Windows 8.1
OS Version: 6.3
OS Arch: amd64
Java Version: 1.8.0_252
Java VM: OpenJDK 64-Bit Server VM
Java Vendor: AdoptOpenJDK
Java Home: c:\program files\dbvisualizer\jre
DbVis Home: C:\Program Files\DbVisualizer
User Home: -------
PrefsDir: -------
SessionId: 55
BindDir: -------
Product: DbVisualizer Pro 11.0.5 [Build #3113]
OS: Windows 10
OS Version: 10.0
OS Arch: amd64
Java Version: 1.8.0_252
Java VM: OpenJDK 64-Bit Server VM
Java Vendor: AdoptOpenJDK
Java Home: c:\program files\dbvisualizer\jre
DbVis Home: C:\Program Files\DbVisualizer
User Home: -------
PrefsDir: -------
SessionId: 968
BindDir: -------
任何想法如何让程序向我展示真正的价值,而不是 null 的解释值?
解决方案
IBM 支持文档中解释了该问题:
问题
尝试将日期值插入到 1940 年之前或 2039 年之后的日期列中,会将相应数据库表中的日期表示为 NULL。
原因
这是由 IBM i 数据库 Toolbox JDBC 驱动程序的限制引起的,如相关链接中所述:
Toolbox JDBC 驱动程序如何处理 1940 年之前(或 2039 年之后)的日期?IBM i 数据库支持多种日期格式。Toolbox JDBC 驱动程序使用在 IBM i 系统上设置为默认值的日期格式。此默认值通常设置为“mdy”,仅支持 1940 到 2039 之间的日期。您可以通过在打开 JDBC 连接时指定“日期格式”属性来覆盖日期格式。最好的选择是“iso”,它支持完整的四位数日期。最简单的方法是在连接数据库时使用的 URL 末尾添加“;date format=iso”。
解决问题
通过 Preferences-> EGL-> SQL Database Connections 将“;date format=iso”附加到适用数据库的主机连接属性将正确显示相应的日期,例如:
1939-01-01。
可以通过执行以下操作在 DBVisualizer 中修复该问题:
- 数据库 -> 编辑数据库连接...
- 选择属性选项卡
- 选择驱动程序属性
- 编辑参数
date format
并time format
成为iso
- 应用更改
- 断开并重新连接
推荐阅读
- android - Firestore 查询权限被拒绝
- jena - 使用 Jena 写入 Ontotext GraphDB
- firebase - 印度的一组开发人员为丹麦的客户提供 Firebase 托管
- mysql - mysql - 在 where 子句存储过程中使用变量
- javascript - 在导出期间显示更新进度
- android - 如何为 android 架构组件生命周期事件添加单元测试?
- google-sheets - 带有排名的电子表格数据透视表
- angular - 如何检查警卫中的skipLocationChange?
- firebase - 这种重新加载方法是如何工作的,它到底是用来做什么的?
- typescript - 如何在具有多个 tsconfig.json 的项目中设置路径属性?