将 DateTime 更新为 Oracle DB 从 c# 中获取无效月份错误
Update DateTime to Oracle DB get not a valid month error from c#
我正在使用 Oracle.ManagedDataAccess
nuget 更新 oracle 数据库。我可以更新非日期数据,但是当我尝试插入数据时,它会抛出 Not a valid month
异常。
string cmdQuery = string.Format("UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = '{0}' WHERE TITLECODE = '{1}'", currentEffectiveDate.AddSeconds(-1), mtcFuel.TITLECODE);
字符串看起来像
"UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = '8/13/2017 11:59:59 PM' WHERE TITLECODE = 'SCRUBS'"
我尝试了其他 DateTime 格式,但没有解决。
您可以使用 Oracle TO_DATE
函数并以相同的方式设置日期格式。
string cmdQuery = string.Format("UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = TO_DATE('{0:MM/dd/yyyy HH:mm:ss}', 'mm/dd/yyyy hh24:mi:ss') WHERE TITLECODE = '{1}'", currentEffectiveDate.AddSeconds(-1), mtcFuel.TITLECODE);
但我建议您为此使用参数。
我正在使用 Oracle.ManagedDataAccess
nuget 更新 oracle 数据库。我可以更新非日期数据,但是当我尝试插入数据时,它会抛出 Not a valid month
异常。
string cmdQuery = string.Format("UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = '{0}' WHERE TITLECODE = '{1}'", currentEffectiveDate.AddSeconds(-1), mtcFuel.TITLECODE);
字符串看起来像
"UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = '8/13/2017 11:59:59 PM' WHERE TITLECODE = 'SCRUBS'"
我尝试了其他 DateTime 格式,但没有解决。
您可以使用 Oracle TO_DATE
函数并以相同的方式设置日期格式。
string cmdQuery = string.Format("UPDATE HKSTF087.FUELCHARGES SET EFFECTIVETHRUDATE = TO_DATE('{0:MM/dd/yyyy HH:mm:ss}', 'mm/dd/yyyy hh24:mi:ss') WHERE TITLECODE = '{1}'", currentEffectiveDate.AddSeconds(-1), mtcFuel.TITLECODE);
但我建议您为此使用参数。