ITPub博客

首页 > 数据库 > 数据库开发技术 > YashanDB|JDBC getString 取 DATE 字段不带时分秒?两个方法解决!

YashanDB|JDBC getString 取 DATE 字段不带时分秒?两个方法解决!

原创 数据库开发技术 作者:makabala 时间:2025-05-13 15:14:24 0 删除 编辑

【问题描述】

在使用 YashanDB JDBC 驱动查询 DATE 类型字段时,如果直接使用:

resultSet.getString(1);

返回结果只包含日期(如 2024-05-01), 不包含时分秒。

【示例现象】

数据库中原始字段值为:

2024-05-01 15:30:00

但 getString() 返回结果却是:

2024-05-01

这会导致部分依赖时间精度的业务逻辑异常。

【影响范围】

适用于  所有 YashanDB JDBC 驱动版本

【问题原因】

YashanDB JDBC 驱动在 DATE 类型字段解析时,getString() 默认只取日期部分,不自动附带时分秒。

这是驱动实现细节所致, 并非数据库数据缺失,而是驱动层对 DATE 类型做了默认“轻量格式化”。

【解决方法】

方式一:改用getTimestamp() 方法(推荐)

String ts = resultSet.getTimestamp(1).toString();

这样可以完整获取日期 + 时间,例如:

2024-05-01 15:30:00.0

方式二:在连接串中设置参数

在 JDBC URL 中添加:

mapDateToTimestamp=true

完整示例:

String url = "jdbc:yashandb://127.0.0.1:8080/dbname?mapDateToTimestamp=true";

启用后,即使使用 getString() 也会返回完整的日期+时间字符串。

【推荐做法总结】

【风险提示】

若业务代码依赖 getString() 且未添加参数,可能导致日期字段截断,建议统一加参数或替换调用方式。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70045450/viewspace-3084068/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-04-10

  • 博文量
    231
  • 访问量
    229280