2014-02-05 71 views
0

我使用Hibernate @Formula找到2列使用Hibernate @Formula尋找時間差

@Formula("(sysdate-creation_date) * 86400") 
private long elapsedTime; 

這給elapsedTime在天,如果我上運行的Oracle查詢之間的時間差,但在做單元測試使用HSQL DB,它以毫秒爲單位給出elapsedTime。有什麼辦法可以使這個公式同時適用於Oracle和HSQLDB?對於我的用例,我希望在幾秒鐘內消逝的時間

+0

sql'DATEDIFF'? – 2014-02-05 11:54:53

+0

DATEDIFF不能與Oracle一起工作 – user401445

+0

如果目標服務器是oracle,我建議使用Oracle進行單元測試,因爲您將遇到更多問題,並且會浪費更多時間用於模擬數據庫,而不是使用Oracle安裝程序。 H2可能是一個更好的選擇,但我確實嘗試過,並決定不再使用模擬數據庫進行有或沒有休眠的測試。 – jbaliuka

回答

0

要查找2列之間的時間差(秒),請使用兩者都支持的SQL。

例如,在ORA語法兼容模式下,MYDATE1 - MYDATE2將兩個日期之間的天數作爲INTERVAL。

如果您想要一個數值,請將結果轉換爲整數或其他數字。

+0

我無法找到任何這兩個支持的SQL。 MYDATE1 - MYDATE2給出了Oracle中兩個日期之間的天數,但給出了HSQLDB情況下輸出的秒數 – user401445