在c#应用程序中查询oracle中的日期时间

本文关键字:日期 时间 oracle 查询 应用程序 | 更新日期: 2023-09-27 18:01:49

下面是我在c#应用程序中编写的Oracle查询,用于获取匹配特定日期的记录。查询执行成功,但返回0条记录,即使有与今天的日期匹配的记录。

 System.Text.StringBuilder sbQuery = new System.Text.StringBuilder();
 sbQuery.Append("select id from temp where activity_datetime=:mDate");
 System.Data.OracleClient.OracleCommand oraCmd = conn.CreateCommand();
 oraCmd.CommandText = strSQL;
 oraCmd.Parameters.Add("mDate", System.Data.OracleClient.OracleType.DateTime);
 oraCmd.Parameters[0].Value = DateTime.Today.Date.ToShortDateString();
 DataSet ds = new DataSet();
 OracleDataAdapter da = new OracleDataAdapter(oraCmd);
 da.Fill(ds);

请告诉我错误是什么

谢谢

在c#应用程序中查询oracle中的日期时间

您正在sbquerystringbuilder中构建查询,但提供变量strSQL作为查询的命令,因此它可能是与您想要的查询不同的查询。

顺便说一下,System.Data.OracleClient命名空间在。net 4中已经弃用了,所以从长远来看,你可能想看看其他的选择。

看起来,问题是在SQL文本中:而不是

  sbQuery.Append("select id from temp where activity_datetime=:mDate");

你应该这样写

  sbQuery.Append(
    "select id 
       from temp 
      where (activity_datetime >= Trunc(:mDate)) and 
            (activity_datetime < Trunc(:mDate) + 1)");
原因是您应该向Oracle询问范围(24小时),而不是确切的日期和时间