HSQL 数据库中的日期在 fastTime 字段中返回负值

Posted

技术标签:

【中文标题】HSQL 数据库中的日期在 fastTime 字段中返回负值【英文标题】:Dates from HSQL Database returns negative values in fastTime field 【发布时间】:2013-03-06 17:06:04 【问题描述】:

我从我的 HSQL 数据库中提取日期,它们显示正确,但在内部它们似乎是错误的。大多数日期都是默认值,其值为 1970-01-01。在调试时,我可以看到一个名为“fastTime”的字段,它说它是 -3.600.000,正好是它应该是前一分钟......

当我现在将这些日期与一些 fastTime 为 0 的生成值混合在一起时,比较错误并且选择了错误的日期。

这非常烦人,因为现在仅在从 DB 中提取值时添加该值即可,但切换到另一个 DBMS 将需要还原此更改。

所以..这只是一个错误还是发生了什么?

【问题讨论】:

【参考方案1】:

如果日期显示正确,那么它们对于您的时区是正确的。

如果 fastTime 指示您报告的值,则表示您的时区是 GMT+1 小时。如果 fastTime 为 0,则日期将表示 GMT 的午夜,而不是您的时区。

当您在 Java 中对属于不同区域的日期进行比较时,您需要考虑时区。为此,您可以使用 Java 日历对象。

【讨论】:

虽然这是一个很好的提示 - 为什么它只是一分钟的偏移量?如果是一个小时,它会适合你的答案,但不是一分钟,这对我来说似乎是错误的。 3600000 毫秒是一小时,而不是一分钟

以上是关于HSQL 数据库中的日期在 fastTime 字段中返回负值的主要内容,如果未能解决你的问题,请参考以下文章

如何在时间戳字段中仅使用日期来选择记录?

JPA HSQL 不从扩展类中获取字段

HSQL 和按位运算?

如何在 SQL 中将 varchar 字段 (YYYYMM) 转换为日期 (MM/01/YY)?

更改实体字段时如何使 HSQL 不自动更新实体

如何将日期和时间转换为时间戳