大家好,我在使用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 timstamp文字:

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版是否支持该功能-但您应该真正升级到当前版本。

10-04 17:21