我正在尝试将 .net 中的日期插入 Oracle 10g 数据库。我正在以这种格式 dd-MM-yyyy 发送日期,但是如果我尝试发送格式 dd-MMM-yyyy,我会收到一条错误消息,上面写着“无效的月份”(我已经尝试过了,因为当我这样做时从 .NET 日期到 OracleDate 的 Ctype 向我显示了例如 01-JAN-2013),当我这样做时,我收到一条消息,说 oracle 在它期望一个数字的地方得到了文本。我需要一些帮助,拜托。
问问题
1466 次
2 回答
1
我假设您有一个 sql 查询,其中包含 :dateToInsert 之类的参数。
在您的 .NET 代码中,您需要将日期作为字符串传递给您的参数:
yourdate.ToString("MM-dd-yyyy"), OracleDbType.Varchar2
并且您的 sql 查询的日期部分应该是这样的:
to_date(:dateToInsert, 'YYYY/MM/DD')
to_date 是 oracle 将字符串转换为日期格式的函数
于 2013-04-16T17:34:10.957 回答
0
首先,Date没有任何格式……它是可以用dd-MM-yyyy形式表示的字符串,这是字符串。日期将被视为您当前的文化信息,例如,如果您通过 16-04-2013,那么它将被隐式转换为 MM-dd-yyyy,因此一个月需要 16 天并且您会收到错误消息。您必须在传递之前将其转换为 MM-dd-yyyy,将其yourdate.ToString("MM-dd-yyyy")
传递到您想要的任何地方,然后您就完成了。
于 2013-04-16T05:56:57.313 回答