C# SQL查询返回空值

C# SQL查询返回空值,c#,.net,oracle,C#,.net,Oracle,我编写了以下查询。在sqldeveloper中,我得到了预期的结果,但当我在visualstudio中从C代码运行它时,得到的是一个空值 V_GVTR是我的Oracle数据库模式中的一个视图 TRDATE is DATE TRTIME is VARCHAR2(30 BYTE) 视图中的示例: TRDATE | TRTIME 2018.01.01 | 12:22:27 查询: String query_tr = "select tr_id from V_GVTR where

我编写了以下查询。在sqldeveloper中,我得到了预期的结果,但当我在visualstudio中从C代码运行它时,得到的是一个空值

V_GVTR是我的Oracle数据库模式中的一个视图

TRDATE is DATE  
TRTIME is VARCHAR2(30 BYTE)  
视图中的示例:

    TRDATE | TRTIME  
2018.01.01 | 12:22:27
查询:

String query_tr = "select tr_id from V_GVTR where to_date(trdate || trtime, 'YYYY.MM.DD HH24:MI:SS') between to_date('2018.06.28 00:00:00', 'YYYY.MM.DD HH24:MI:SS') and to_date('2018.06.30 00:00:00', 'YYYY.MM.DD HH24:MI:SS')"    
OracleDataAdapter da_tr = new OracleDataAdapter(query_tr, Properties.Settings.Default.ConnectionString);
DataTable dt_tr = new DataTable();
da_tr.Fill(dt_tr);

也许YYYY-MM-DD必须变成YYYY.MM.DDI在c端无法帮助您,但您的查询正在进行更多必要的日期/字符串转换。如果你使用日期,那么使用日期;不用管弦乐了!也就是说,在您的情况下,将字符串转换为日期并保留在那里,这样您就可以将日期与日期进行比较,而不是将字符串与字符串进行比较。这意味着您的查询结果类似于从V_GVTR where to_daterDate | | trtime,'YYYY-MM-DD HH24:MI:SS'到日期'2018-06-28 00:00:00:00'、'yyyyy-MM-DD hhh24:MI:SS'和'2018-06-30 00:00:00'、'yyyyyy-MM-DD h24:MI:SS'之间选择tru id,我在这里假设您的trdate和trtime参数之间有额外的空间;如果没有,则需要将其更改为trdate | |“”| | | trtimegvdate和GVTIME在哪里使用?他们刚刚出现在你最后的评论中,但我不确定这与这个问题有什么关系。在你的问题中,to_charto_date’2018-06-28 00:00:00’、‘YYYY-MM-DD HH24:MI:SS’、‘YYYY-MM-DD HH24:MI:SS’、‘YYYY-MM-DD HH24:MI:SS’不就是写‘2018-06-28 00:00:00:00’的一种冗长的方式吗?我已经删除了错误的查询,并且在我原来的帖子中更正了我的查询。是的,我正在同一个数据库中运行此查询。这两个查询都是完全相同的C和SQL开发人员