Sql 从VB.NET解析DateTime到Oracle存储过程

Sql 从VB.NET解析DateTime到Oracle存储过程,sql,vb.net,oracle,Sql,Vb.net,Oracle,我一直在努力解决Oracle的日期时间功能 我有一个运行良好的存储过程,但我不知道如何从VB.net解析数据,以便存储过程可以从VB.net接收值 有人知道如何解析VB.net中的值吗?在本例中,我讨论的是日期时间,因此它将是一小时、一秒和一分钟 多谢各位 这是.NET代码 Try Dim conn As New OracleConnection(connectionString(data(0), data(1), data(2))) conn.O

我一直在努力解决Oracle的日期时间功能

我有一个运行良好的存储过程,但我不知道如何从VB.net解析数据,以便存储过程可以从VB.net接收值

有人知道如何解析VB.net中的值吗?在本例中,我讨论的是日期时间,因此它将是一小时、一秒和一分钟

多谢各位

这是.NET代码

Try
            Dim conn As New OracleConnection(connectionString(data(0), data(1), data(2)))
            conn.Open()
            Dim cmd As New OracleCommand
            cmd.Connection = conn
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "transactionme"
            Dim p1 As OracleParameter
            Dim p2 As OracleParameter
            Dim p3 As OracleParameter
            Dim p4 As OracleParameter
            Dim p5 As OracleParameter
            Dim p6 As OracleParameter
            Dim p7 As OracleParameter
            Dim p8 As OracleParameter
            Dim p9 As OracleParameter
            Dim p10 As OracleParameter
            p1 = cmd.Parameters.Add("param1", OracleDbType.NChar)
            p1.Value = ""
            p2 = cmd.Parameters.Add("param2", OracleDbType.NChar)
            p2.Value = "STD2"
            p3 = cmd.Parameters.Add("param3", OracleDbType.NChar)
            p3.Value = "RK001"
            p4 = cmd.Parameters.Add("param4", OracleDbType.NChar)
            p4.Value = "EK001"
            p5 = cmd.Parameters.Add("param5", OracleDbType.Date)
            p5.Value = "here is the problem"
            p6 = cmd.Parameters.Add("param6", OracleDbType.Date)
            p6.Value = "here is the problem"
            p7 = cmd.Parameters.Add("param7", OracleDbType.Date)
            p7.Value = "here is the problem"
            p8 = cmd.Parameters.Add("param8", OracleDbType.NChar)
            p8.Value = "Master Card"
            p9 = cmd.Parameters.Add("param9", OracleDbType.Int32)
            p9.Value = 30000

            Dim n As Integer
            n = cmd.ExecuteNonQuery()
            MessageBox.Show(n.ToString)
            conn.Close()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
参数应该是这样的,已经尝试了很多东西,比如concat和其他

to_date('2012-01-23 22:00', 'YYYY-MM-DD hh24:mi')
据此,Oracle日期数据类型对应于.Net日期数据类型

从以上链接:

参数值应该是日期数据值,而不是字符串。当您将日期作为参数传入时,不需要设置其格式,因为基础表示形式是数字

i、 e

编辑并尝试解析日期/时间信息并转换字符串

  Private Function GetDateTime(dateFormat As String) As Date
    Dim split() As String = New String() {","}

    Return Convert.ToDateTime(dateFormat.Split(split, 2, StringSplitOptions.None)(0))

End Function
用法:

p5.Value = GetDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") 'or what ever your string variable is.

我不知道你在问什么。该过程是否需要
VARCHAR2
?A
日期
时间戳
间隔
?如果过程采用
VARCHAR2
,字符串是什么样子的?您试图从字符串中解析什么?编辑人员,请看一看,thanksp5=cmd.Parameters.Add(“param5”,OracleDbType.Date)p5.Value=Convert.ToDateTime(“2012-01-23 22:00,yyyyy-MM-DD hh24:mi”)我已经尝试过了,但不幸的是出现了一个错误,因为字符串无效,你能告诉我怎么做吗?@BigSmile如果你只使用
Convert.ToDateTime(“2012-01-23 22:00”)
它就可以工作,那么你不需要格式化。新日期里面有什么?感谢you@BigSmile很抱歉,这是您的日期时间字符串(“2012-01-23 22:00,YYYY-MM-DD hh24:mi”让我看看是否可以在answerConvert.ToDateTime(newDate.Split(引发错误sir-->Split,2,StringSplitOptions.None)(0)中更好地解释一下)
p5.Value = GetDateTime("2012-01-23 22:00, YYYY-MM-DD hh24:mi") 'or what ever your string variable is.