2012-12-03 163 views
0

我們編寫了以下查詢,它在Oracle中返回記錄,但當通過VB6.0執行相同查詢時,它將返回0個記錄。SQL查詢在VB6中不起作用,但查詢在Oracle中正常工作

Select * 
from crdh 
where expdate between (TO_DATE('03-Dec-2002','DD-MON-YYYY')) 
    and (TO_DATE('31-Dec-2012','DD-MON-YYYY')) 
    and CS = 'AA' 

任何人都可以幫忙嗎?

+1

請顯示在VB6中執行查詢的代碼。 – Codo

+6

我真的不知道,如果甲骨文會與'哪裏和「部分 – SWeko

+1

作爲@SWeko說 - 你嘗試後,刪除和從哪裏和 –

回答

2

假設你的問題中的where and只是一個錯字而不是你的查詢的一部分,你的問題的原因可能是一個NLS問題;你的格式字符串的「MON」部分是文化依賴。您可以通過在環境中設置語言來解決此問題,但IMO最好使用語言無關的數字月份格式,即

Select * 
from crdh 
where expdate between (TO_DATE('03-12-2002','DD-MM-YYYY')) 
    and (TO_DATE('31-12-2012','DD-MM-YYYY')) 
    and CS='AA' 
+2

或更好但恕我直言,使用ANSI語法和ISO日期格式...「date date'2002-12-03'和2012'12'31」 –

+1

@DavidAldridge你的意思是'日期'2002-12-03'和日期'2012之間的日期-12-31''? – 2012-12-03 09:32:59

+0

對不起,它不起作用!!!!!! 111 –