HATEnate JPQL中的DATETIME表达式

时间:2014-07-22 12:12:58

标签: oracle hibernate jpql

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' )".

我尝试了很多功能,但没有一个能达到目的。有人可以阐明这个。 在此先感谢。

0 个答案:

没有答案