实体字段定义类型是java.util.Date,使用Hibernate自动创建数据库字段时生成的字段类型是datetime2,保存日期时数据库数据正常,见下图
但是通过Hibernate查询出来的数据都是比数据库实际数据晚两天
查询得知datetime2是SQL Server2008新推出的数据类型,能精确到0.1微秒(μs),而datetime只能精确到1毫秒(ms),按说只是提高了精度而已并不会有什么影响。一直查找不到错误原因,后来尝试把datetime2改成datetime,问题解决
本文探讨了使用Hibernate框架时遇到的日期数据偏差问题,详细记录了从发现问题到最终解决的过程。核心在于实体字段定义为java.util.Date时,数据库字段设置为datetime2导致的时间偏差现象,通过将datetime2改为datetime成功解决了该问题。
实体字段定义类型是java.util.Date,使用Hibernate自动创建数据库字段时生成的字段类型是datetime2,保存日期时数据库数据正常,见下图
但是通过Hibernate查询出来的数据都是比数据库实际数据晚两天
查询得知datetime2是SQL Server2008新推出的数据类型,能精确到0.1微秒(μs),而datetime只能精确到1毫秒(ms),按说只是提高了精度而已并不会有什么影响。一直查找不到错误原因,后来尝试把datetime2改成datetime,问题解决
1057

被折叠的 条评论
为什么被折叠?