Oracle期望以什么格式表示日期值,以及如何向Oracle提供它想要的内容?

时间:2012-04-23 17:46:10

标签: c# winforms oracle datetime dotconnect

“AVAILABLEDATE”是DATE类型的列。

我可以通过Toad查询表格并获得结果。但是,在(Winforms / C#/ dotConnect)代码中,它不起作用。

ocmd.Parameters.Add("AVAIL_DATE", getDateToQuery());

我很确定问题是我通过日期的方式:

private DateTime getDateToQuery() {
  DateTime candidateVal = dateTimePickerScheduleDate.Value;
  if (candidateVal.Equals(null)) {
    candidateVal = DateTime.Now;
  }
  return candidateVal;
}

...但我不知道如何强制日期值采用Oracle将识别的格式。

2 个答案:

答案 0 :(得分:4)

尝试添加参数类型:

OracleParameter p1 = new OracleParameter("AVAIL_DATE", OracleDbType.Date);
p1.Value = getDateToQuery();
ocmd.Parameters.Add(p1);

另外,请确保按顺序提供参数,上次使用Oracle时我记得忽略了参数的名称。

答案 1 :(得分:0)

这有效,但我不确定它是最好的方法:

int iFromYear = dateTimePickerScheduleDate.Value.Year;
int iFromMonth = dateTimePickerScheduleDate.Value.Month;
int iFromDay = dateTimePickerScheduleDate.Value.Day;
. . .
ocmd.Parameters.Add("AVAIL_DATE", new DateTime(iFromYear, iFromMonth, iFromDay));