首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与HyperSql 2.0相比,HyperSql 2.3中的时间戳发生了什么变化?

与HyperSql 2.0相比,HyperSql 2.3中的时间戳发生了什么变化?
EN

Stack Overflow用户
提问于 2015-01-05 07:18:34
回答 1查看 74关注 0票数 0

我们使用HyperSql作为单元测试数据库,我们有一个hql (我们使用hibernate 3.3.1),如下所示

代码语言:javascript
复制
select count(*) from TestTable where create_date <= current_timestamp;

create_date的类型是时间戳。该代码适用于HyperSql 2.0,但对于HyperSql 2.3则不适用。

有人知道时间戳实现从2.0到2.3的变化吗?与时区有关的变化吗?我检查了HyperSql Changenotes,但一无所获。

更新这里是详细信息:用于单元测试的内存DB中的HyperSql。模式是基于注释类自动生成的。create_date列映射如下:

代码语言:javascript
复制
@Column(name = "create_date", nullable = false)
    public Timestamp getCreateDate() {
    return createDate;
}

测试是:1)清空数据库;2)调用一个应该在数据库中插入记录的方法;3) check包含一条带有create_date<=current_timestamp记录的记录。

如果只使用hibernate获得字段,则输出如下

代码语言:javascript
复制
createDate=2015-01-06 13:06:42.132
current_timestamps=2015-01-06 13:06:42.4

它在HyperSQL 2.0中运行良好,但在2.3中,返回的记录为零。我想这是时区问题,但是从打印出来的输出中,我没有看到时区信息。显示的时间是本地时间。我的主人的时区是CST (UTC+8)。

关于如何调试它有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-15 15:03:56

很难说。Hibernate 3.3.1太老了,与HSQLDB2.x不完全兼容。

这也可能是时区问题。默认情况下,时间戳类型没有时区,但是CURRENT_TIMESTAMP有一个隐式时区。LOCALTIMESTAMP没有时区,应该与普通时间戳列相比较使用。

更新:当一个时间戳是带时区而另一个没有时区时,这是一个回归。它已经修复,并致力于下一个版本2.3.3的SVN。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27774988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档