如果有人能提供帮助,请提前致谢...这让我发疯了!
我有一个像
这样的查询select * from tranHistory where itemid = 10 and created_dttm >= '21-Feb-2012';
简单,对吧?从vb.net运行它不返回任何行。从SQL Developer运行它返回99行。我最初认为这是一个参数问题,因为查询过去看起来像
select * from tranHistory where itemid = 10 and created_dttm >= :tranHistoryDate;
在原始查询中还有另外两个参数,我验证它们的顺序正确。我将它简化为这种形式,以消除尽可能多的变量。我们正在为数据提供者使用Oracle 11g,Visual Studio 2010和Oracle ODP.Net。
我无法为我的生活弄清楚为什么会失败!
答案 0 :(得分:2)
要消除连接问题,如果从WHERE
子句中删除日期限制,它是否会返回vb.net中的任何数据?
如果是这样,它很可能是日期字符串解析问题。检查服务器上的NLS设置,或尝试使用与语言无关的日期格式:
and created_dttm >= TO_DATE('20120221', 'YYYYMMDD');
如果删除日期导致没有返回任何数据,那么查询几乎肯定不是问题,但是与数据库的连接存在问题。它是否连接到与SQL Developer相同的模式?
答案 1 :(得分:1)
使用 >= date'2013-02-21'
在SQL DEV和您的代码中有效吗?如果是这样,你就会遇到隐式字符到日期转换的问题 - 这取决于你的会话设置......