2012-12-03 130 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 –