.NET和Oracle.DataAccess.Client,我应该发送什么日期格式?

时间:2013-04-15 21:49:13

标签: .net database oracle data-access

我正在尝试将.net中的日期插入到Oracle 10g数据库中。 我发送这个格式的日期dd-MM-yyyy,但是我收到一条错误消息,上面写着“无效月份”,如果我尝试发送格式dd-MMM-yyyy(我试过这个因为当我做的时候Ctype to OracleDate从.NET日期开始向我展示例如01-JAN-2013),当我这样做时,我得到一条消息,说明oracle得到了文本,它预期一个数字。我需要一些帮助。

2 个答案:

答案 0 :(得分:1)

我假设您有一个带有参数的SQL查询,例如:dateToInsert。

在.NET代码中,您需要将日期作为字符串传递给参数:

yourdate.ToString("MM-dd-yyyy"), OracleDbType.Varchar2

并且sql查询的日期部分应该是这样的:

to_date(:dateToInsert, 'YYYY/MM/DD')

to_date是oracle将字符串转换为日期格式的函数

答案 1 :(得分:0)

首先,Date没有任何格式......它的字符串可以用dd-MM-yyyy的形式表示,这是字符串。日期将被视为您当前的文化信息,例如如果您通过16-04-2013,那么它将被隐式转换为MM-dd-yyyy,因此每月需要16个并且您收到错误。在传递yourdate.ToString("MM-dd-yyyy")之前,你必须将它转换为MM-dd-yyyy,在任何你想要的地方传递它,你就完成了。