【发布时间】:2020-03-08 10:39:32
【问题描述】:
我遇到了错误
Oracle.ManagedDataAccess.Client.OracleException: 'ORA-01830: 日期格式图片在转换整个输入字符串之前结束'
在通过 c# 代码和 oracle 查询查找卷时:
public DataTable empcount(string strtdate, string enddate)
{
string cString = ConfigurationManager.ConnectionStrings["greft"].ToString();
OracleConnection conn = new OracleConnection(cString);
OracleCommand cmd2 = new OracleCommand();
cmd2.CommandText = "Select (sum(emp)) from emp_rec where emp_typ = 'M'and emp_stat!= 'ON'and trunc(join_start) >= TO_CHAR(TO_DATE(:sdate, 'DD-MM-YY'), 'DD-MON-YY') and trunc(join_end) <= TO_CHAR(TO_DATE(:edate, 'DD-MM-YY'), 'DD-MON-YY') ";
cmd2.Parameters.Add(":sdate", strtdate);
cmd2.Parameters.Add(":edate", enddate);
cmd2.Connection = conn;
OracleDataAdapter da = new OracleDataAdapter(cmd2);
DataTable dt = new DataTable();
da.Fill(dt);
conn.Dispose();
return dt;
}
在表格中,join_start 和 join_end 的日期格式为“02-MAY-2019”。 :sdate & :edate 输入将采用 mm/dd/yyyy 格式(例如 05/01/2019)。
【问题讨论】:
-
而不是字符串,最好在Oracle端的C#相关类型中使用
DateTime,另一方面,您的'02-MAY-2019和05/01/2019字符串格式显然不匹配。