Asp.net mvc 是否以多日期/时间格式将日期时间从mvc转换为Oracle?
这是我的项目中更新的查询Asp.net mvc 是否以多日期/时间格式将日期时间从mvc转换为Oracle?,asp.net-mvc,oracle,datetime-format,Asp.net Mvc,Oracle,Datetime Format,这是我的项目中更新的查询 string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12=to_date('" + DateTime.Now.ToString("dd/MMM/yyyy HH:mm:ss", new CultureInfo("en-US")) + "','DD/MM/YYYY HH24:MI:SS') " + " where tc_lsn01 =:DocNo and tc_lsn02 =:Flo
string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12=to_date('" + DateTime.Now.ToString("dd/MMM/yyyy HH:mm:ss", new CultureInfo("en-US")) + "','DD/MM/YYYY HH24:MI:SS') " +
" where tc_lsn01 =:DocNo and tc_lsn02 =:FlowNo and tc_lsn05 =:Plant and tc_lsn09 =:UserName";
我尝试了很多方法来更新Datetime
to_date('" + DateTime.Now.ToString("dd/MMM/yyyy HH:mm:ss", CultureInfo.InvariantCulture) + "', 'DD/MON/YYYY HH24:MI:SS')
to_date('" + DateTime.Now.ToString("dd/MMM/yyyy HH:mm:ss") + "','DD/MON/YYYY HH24:MI:SS')
to_date('" + DateTime.Now.ToString("dd/M/yyyy HH:mm:ss") + "','DD/MM/YYYY HH24:MI:SS')
但当我在计算机中更改日期时间格式时,它是错误的。
我的电脑格式包括越南、台湾和英语-美国
这是执行查询时的代码
cmd.CommandType = CommandType.Text;
//Update CurrentFlow
cmd.CommandText = updateCurrentFlow;
cmd.Parameters.Add(new OracleParameter("DocNo", DocNo));
cmd.Parameters.Add(new OracleParameter("FlowNo", FlowNo));
cmd.Parameters.Add(new OracleParameter("Plant", Plant));
cmd.Parameters.Add(new OracleParameter("UserName", UserName));
//cmd.Parameters.Add("DateNow", OracleDbType.Date).Value = DateTime.Now;
currentSigningFlowRowAffected = cmd.ExecuteNonQuery();
我不知道怎么解决它?我试过很多方法,请帮忙。
非常感谢只需像这样使用SQL字符串:
string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12 = :theDate
where tc_lsn01 =:DocNo and tc_lsn02 =:FlowNo and tc_lsn05 =:Plant and tc_lsn09 =:UserName";
cmd.Parameters.Add("theDate ", OracleDbType.Date, ParameterDirection.Input).Value = DateTime.Now;
cmd.Parameters.Add(new OracleParameter("DocNo", DocNo));
cmd.Parameters.Add(new OracleParameter("FlowNo", FlowNo));
cmd.Parameters.Add(new OracleParameter("Plant", Plant));
cmd.Parameters.Add(new OracleParameter("UserName", UserName));
如果需要的话,驱动程序会进行适当的转换,您不必担心这一点
或者更简单的是:
string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12 = SYSDATE
where tc_lsn01 =:DocNo and tc_lsn02 =:FlowNo and tc_lsn05 =:Plant and tc_lsn09 =:UserName";
cmd.Parameters.Add(new OracleParameter("DocNo", DocNo));
cmd.Parameters.Add(new OracleParameter("FlowNo", FlowNo));
cmd.Parameters.Add(new OracleParameter("Plant", Plant));
cmd.Parameters.Add(new OracleParameter("UserName", UserName));
只需像这样使用SQL字符串:
string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12 = :theDate
where tc_lsn01 =:DocNo and tc_lsn02 =:FlowNo and tc_lsn05 =:Plant and tc_lsn09 =:UserName";
cmd.Parameters.Add("theDate ", OracleDbType.Date, ParameterDirection.Input).Value = DateTime.Now;
cmd.Parameters.Add(new OracleParameter("DocNo", DocNo));
cmd.Parameters.Add(new OracleParameter("FlowNo", FlowNo));
cmd.Parameters.Add(new OracleParameter("Plant", Plant));
cmd.Parameters.Add(new OracleParameter("UserName", UserName));
如果需要的话,驱动程序会进行适当的转换,您不必担心这一点
或者更简单的是:
string updateCurrentFlow = "update tc_lsn_file set tc_lsn10 = '2',tc_lsn12 = SYSDATE
where tc_lsn01 =:DocNo and tc_lsn02 =:FlowNo and tc_lsn05 =:Plant and tc_lsn09 =:UserName";
cmd.Parameters.Add(new OracleParameter("DocNo", DocNo));
cmd.Parameters.Add(new OracleParameter("FlowNo", FlowNo));
cmd.Parameters.Add(new OracleParameter("Plant", Plant));
cmd.Parameters.Add(new OracleParameter("UserName", UserName));
当我在我的电脑中将格式改为越南时,也会出现错误SOORA-01843:不是有效的月份,你确定吗?注意,必须首先添加日期参数。顺序必须匹配(除非您设置了
cmd.BindByName=true;
)哦,我在最后添加了它。但是,我尝试了这个来确定日期(“+DateTime.Now.ToString(“M/dd/yyyyy HH:mm:ss”,“新文化信息”(“en-US”))+”,“mm/dd/yyyyyy HH24:MI:ss”)
,没问题。无论如何,非常感谢当我在我的电脑里把格式改成越南的时候,也是错误的。不是一个有效的月份,你确定吗?注意,必须首先添加日期参数。顺序必须匹配(除非您设置了cmd.BindByName=true;
)哦,我在最后添加了它。但是,我尝试了这个来确定日期(“+DateTime.Now.ToString(“M/dd/yyyyy HH:mm:ss”,“新文化信息”(“en-US”))+”,“mm/dd/yyyyyy HH24:MI:ss”)
,没问题。无论如何,非常感谢