我正在使用derby和hsqldb对我的代码进行单元测试。在我的代码中,我使用的是HQL(hibernate查询语言)。在这些查询中,我使用from_unixtime(timestamp)从时间戳中提取日期时间。似乎derby anf hsqldb不支持from_unixtime。另外,在我看来from_unixtime是mysql特有的功能。这有多正确?如何使用derby或hsqldb测试我的hql查询(包含from_unixtime(timestamp)函数?
答案 0 :(得分:2)
FROM_UNIXTIME确实特定于MySQL。
HSQLDB 2.2.6及更高版本支持此功能将unix时间(以秒为单位)转换为日期时间值:
TIMESTAMP( <second value> )
例如:
call timestamp(1000000000)返回2001-09-09 01:46:40.0
HSQLDB 2.2.6还支持MySQL语法兼容模式,该模式包括为MySQL编写的SQL语句的多个自动转换。
答案 1 :(得分:2)
在Derby中,您可以使用JDBC转义函数TIMESTAMPADD将您的间隔(以秒为单位)添加到1970年1月1日的基本时间戳。以下是一些文档:http://db.apache.org/derby/docs/10.8/ref/rrefjdbc88908.html以下是来回翻译的一些讨论在MySQL技术和Derby技术之间:http://objectmix.com/apache/646986-mysql-to_days-emulation-derby.html