You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HSQLDB 2.7.2时间戳小数秒解析是否存在Bug?

HSQLDB 2.7.2 to_timestamp 解析小数秒前导零丢失问题判定

这确实是HSQLDB的解析Bug。

问题复现与影响

  • 执行SQL语句:
    to_timestamp('24-04-2019 08:46:43.082893000', 'dd-mm-yyyy hh24:mi:ss.FF')
    
  • 错误解析结果:
    2019-04-24 08:46:43.82893
    
    小数部分首位的0被忽略,原本的0.082893000被错误解析为0.82893,直接导致分页查询逻辑异常——当把最后一页的截止时间作为下一页起始时间时,起始时间被错误放大,进而丢失本该被查询到的数据。

结合官方文档的判定

HSQLDB官方文档明确说明FF用于表示小数秒,无需重复使用,应支持任意精度的小数秒解析。但当前实现中,解析逻辑错误地丢弃了小数部分的前导零,不符合文档描述的预期行为,属于解析逻辑的缺陷。

临时解决方案

  • 可以指定固定精度的小数秒格式,比如使用FF9替代FF,确保前导零被正确解析:
    to_timestamp('24-04-2019 08:46:43.082893000', 'dd-mm-yyyy hh24:mi:ss.FF9')
    
  • 也可以在传入时间字符串前,确保小数部分的格式被正确处理,避免解析偏差。

内容的提问来源于stack exchange,提问作者DailyFrankPeter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 16:22:06