适用于 oracle 和 HSQL 的查询
Query that works in oracle and HSQL
大家好,我的代码中有一个使用 oracle 12c 的查询。
SELECT *
FROM TABLE-A
join TABLE-B on TABLE-A.id=TABLE-B.id
where TABLE_B.ISRT_TS BETWEEN TO_TIMESTAMP ('10-JUN-17 04.00.00.000000000 AM','DD-Mon-RR HH:MI:SS.FF9 AM') AND TO_TIMESTAMP('10-Sep-17 03.59.59.999999999 AM', 'DD-Mon-RR HH:MI:SS.FF9 AM')
但是当我在 HSQL 中执行相同的查询时出现异常。任何人都可以建议在现有查询中更改哪些内容以在 oracle 和 hsql 中工作。
Error in hsql:data exception: invalid datetime format: 9 AM
Elapsed Time: 0 hr, 0 min, 0 sec, 0 ms.
HQL 版本:1.8.0.10
to_timstamp()
不是 SQL 标准的一部分,因此 HSQL 不理解它也就不足为奇了。
一种编写条件的可移植方式是使用 ANSI 时间戳文字:
select *
from table_a
join table_b on table_a.id = table_b.id
where table_b.isrt_ts between timestamp '2017-06-10 04:00:00' and timestamp '2017-09-10 03:59:59.99999'
我不知道古老而过时的 1.8 版本是否支持 - 但你应该真的升级到当前版本。
大家好,我的代码中有一个使用 oracle 12c 的查询。
SELECT *
FROM TABLE-A
join TABLE-B on TABLE-A.id=TABLE-B.id
where TABLE_B.ISRT_TS BETWEEN TO_TIMESTAMP ('10-JUN-17 04.00.00.000000000 AM','DD-Mon-RR HH:MI:SS.FF9 AM') AND TO_TIMESTAMP('10-Sep-17 03.59.59.999999999 AM', 'DD-Mon-RR HH:MI:SS.FF9 AM')
但是当我在 HSQL 中执行相同的查询时出现异常。任何人都可以建议在现有查询中更改哪些内容以在 oracle 和 hsql 中工作。
Error in hsql:data exception: invalid datetime format: 9 AM
Elapsed Time: 0 hr, 0 min, 0 sec, 0 ms.
HQL 版本:1.8.0.10
to_timstamp()
不是 SQL 标准的一部分,因此 HSQL 不理解它也就不足为奇了。
一种编写条件的可移植方式是使用 ANSI 时间戳文字:
select *
from table_a
join table_b on table_a.id = table_b.id
where table_b.isrt_ts between timestamp '2017-06-10 04:00:00' and timestamp '2017-09-10 03:59:59.99999'
我不知道古老而过时的 1.8 版本是否支持 - 但你应该真的升级到当前版本。