问题现象
在通过 YashanDB JDBC 驱动查询 date 类型字段时,若使用如下方式:
rs.getString(1);
返回的结果只包含日期(例如 2024-05-01),不包含时分秒部分。
问题影响
数据看似缺失时分秒,容易误导业务逻辑;
某些依赖完整时间戳的功能出现误判或异常。
根因分析
YashanDB JDBC 驱动在处理 date 类型字段时,getString() 默认只格式化为 yyyy-MM-dd,未自动附加时间部分。
解决方案
推荐使用 getTimestamp() 获取完整时间信息:
String datetime = rs.getTimestamp(1).toString(); // 返回:2024-05-01 14:30:00.0
或在 JDBC 连接串中加入:
mapDateToTimestamp=true
例如:
jdbc:yashandb://localhost:8080/dbname?mapDateToTimestamp=true
建议总结
如业务依赖完整时间,务必使用 getTimestamp();
若框架不可更改,可通过连接参数启用自动映射;
此行为适用于所有版本 YashanDB 驱动。