在oracle查询中添加日期参数

本文关键字:日期 参数 添加 oracle 查询 | 更新日期: 2023-09-27 18:04:53

我要做的是在两个日期之间执行查询,日期将来自一个参数。

在下面的代码中,我放置了一个参数,并让第二个日期固定为示例目的。

代码/查询粘贴在这里有点长,但这里是一个简短的版本:

OracleParameter fromDateParameter = new OracleParameter();
fromDateParameter.OracleDbType = OracleDbType.Varchar2;
fromDateParameter.Value = "'3/06/2013 20:00:00'";
this.oracleDataAdapter4.SelectCommand = new OracleCommand("
   SELECT DISTINCT (LOG.RID) FROM LOG WHERE LOG.TIMESTAMP 
   BETWEEN TO_DATE(:fromDateParameter, 'MM/DD/YYYY hh24:mi:ss ') 
   AND TO_DATE('3/06/2013 23:59:00', 'MM/DD/YYYY hh24:mi:ss '))", 
   oracleConnection4);
oracleDataAdapter4.SelectCommand.Parameters.Add(fromDateParameter);           
this.oracleDataAdapter4.Fill(event11);

我得到了这个消息:

ORA-01858:在原来是数字的地方发现了一个非数字字符将

我做了相同的查询,没有参数,它工作得很好。

谢谢

在oracle查询中添加日期参数

我没有找到使用Varchar2数据类型的方法。所以,我使用日期数据类型给出答案。

if (dateTo.Minute > 30)
   minToInt = 30;
else
   minToInt = 00;
dateFrom = DateTime.Now;
dateTo = DateTime.Now;     
DateTime dateFrom = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, dateFrom.Hour, 00, 00);
DateTime dateTo = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, dateTo.Hour, minToInt, 00);
////////FROM DATE/////////
OracleParameter fromDateParameter = new OracleParameter();
fromDateParameter.OracleDbType = OracleDbType.Date;
fromDateParameter.Value = dateFrom;
////////TO DATE/////////
OracleParameter toDateParameter = new OracleParameter();
toDateParameter.OracleDbType = OracleDbType.Date;
toDateParameter.Value = dateTo;

this.oracleDataAdapter4.SelectCommand = new OracleCommand("
   SELECT DISTINCT (LOG.RID) FROM LOG WHERE LOG.TIMESTAMP 
   BETWEEN :fromDateParameter 
   AND :toDateParameter)", oracleConnection4);
oracleDataAdapter4.SelectCommand.Parameters.Add(fromDateParameter);           
oracleDataAdapter4.SelectCommand.Parameters.Add(toDateParameter);  
this.oracleDataAdapter4.Fill(event11);

不要与if/else分钟验证混淆,它只是用于我的查询目的。