Select To_char((( To_timestamp_tz(From_tz(Cast(sysdate AS TIMESTAMP) ,'GMT')))
AT TIME ZONE ( 'America/New_York' ) ),'MM/DD/YYYY HH24:MI:SS') from dual;
我想执行类似于上面的SQL,sysdate是我希望通过Hibernate JPQL查询的tbl的列。
这就是我如何尝试实施。
Path<Date> comTimePath = entity.get("SYSDATE");
Expression<String> com = cb.parameter(String.class,"MM/DD/YYYY HH24:MI:SS");
Expression<String> gmt = cb.parameter(String.class,"GMT"); // Parameter value is set as GMT
Expression<String> est = cb.parameter(String.class,"EST"); // value is set 'America/New_York'
Expression<String> fromTzStr = cb.function("From_tz", String.class, comTimePath.as(Timestamp.class),gmt);
Expression<String> toTimeStamp = cb.function("To_timestamp_tz", String.class, fromTzStr);
Expression<String> atTimeZone = cb.function("AT TIME ZONE", String.class, est);
Expression<String> concat = cb.concat(toTimeStamp, atTimeZone);
Expression<String> comTimeString= cb.function(TO_CHAR, String.class, concat,com);
但问题是如何添加toTimeStamp&amp; atTimeZone表达式一起形成
"To_timestamp_tz(From_tz(Cast(sysdate AS TIMESTAMP) ,'GMT')))
AT TIME ZONE ( 'America/New_York' )".
我尝试了很多功能,但没有一个能达到目的。有人可以阐明这个。 在此先感谢。