2016-10-21 34 views
0

我需要幫助。下面是運行Jboss和websphere的兩個相同的選擇查詢,它們安裝在Linux中。在Jboss查詢工作正常,但在websphere失敗。兩者的代碼庫都相同。 Jboss的在websphere中導致的日期格式問題

SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE ACA_RULE_CID = '1455' AND NVL(to_date('**12/14/2015 8:48:41**', 'MM-dd-yyyy hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE) 

的Websphere

SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE ACA_RULE_CID = '1189' AND NVL(to_date(**'2010-3-17 11.30.10.0'**, 'MM-dd-yyyy hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE) 

因此拋出

java.sql.SQLDataException: ORA-01843: not a valid month 

請幫我解決這個問題。

+1

「2010-3-17 11.30.10.0 ==> 2010年是不是一個有效的月份。改變你的日期模式。 – Unknown

+0

在這兩個查詢中使用相同的日期時間格式''MM-dd-yyyy hh24:mi:ss'',但您的源數據格式不同''12/14/2015 8:48:41''和' 3-17 11.30.10.0'' – AlexSmet

+0

是的,我使用相同的數據格式和相同的代碼..只有服務器是不同的。在jboss中:12/14/2015 8:48:41但是websphere將它轉換爲'2010-3-17 11.30.10.0'並拋出oracle異常 –

回答

0

你應該這樣使用;

的Websphere

SELECT MODIFIED_DATE FROM /*Query Builder Clause*/ ACA_RULE WHERE ACA_RULE_CID = '1189' AND NVL(to_date(**'2010-3-17 11.30.10'**, 'yyyy-MM-dd hh24:mi:ss'), SYSDATE)=decode(MODIFIED_DATE,null,SYSDATE,MODIFIED_DATE) 
+1

我不應該修改日期格式。查詢應該和它在Jboss中的工作方式一樣。日期格式應該是MM-DD-YYYY。我試圖升級到更高版本ojdbc6.jar在websphere中仍然沒有爲我工作。此外,我嘗試在wepsphere設置中設置NLS_DATE格式。 –