2016-03-20 5 views
0

Я пытался получить разницу между двумя датами в Postgress,Bad значение для типа двойной для дат интервала

select TO_TIMESTAMP(f_time)-TO_TIMESTAMP(s_time),date from my_table where tId='txt' group by s_time,date; 

я мог бы получить результат в pgAdmin и тип данных для такой же, как interval.

В java, я получаю следующее исключение.

[org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-2) Bad value for type double : 00:16:40 
[stderr] (default task-2) javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not execute query 
[stderr] (default task-2) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) 
[stderr] (default task-2) at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) 
[stderr] (default task-2) at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:458) 
[stderr] (default task-2) at .services..(.java:34) 
[stderr] (default task-2) at .$Proxy$_$$_WeldClientProxy.(Unknown Source) 
[stderr] (default task-2) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[stderr] (default task-2) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
[stderr] (default task-2) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
[stderr] (default task-2) at java.lang.reflect.Method.invoke(Method.java:606). 

Могу ли я изменить тип данных на текст?

+0

Что фактический тип и фактические значения '' f_time' и s_time'? – Patrick

+0

оба типа 'bigint' – NaaN

ответ

0

Наконец я решил это отливкой тип данных для text следующим образом,

cast (((TO_TIMESTAMP(f_time))-(TO_TIMESTAMP(s_time))) as text)