【问题标题】:Convert XML date/time to Oracle Date/Time format将 XML 日期/时间转换为 Oracle 日期/时间格式
【发布时间】:2012-05-29 18:16:15
【问题描述】:

我在 xml 文档中有一个日期/时间值,如下所示:

2012-02-29T00:00:00+01:00

我必须以这种格式将该日期转换为 oracle 日期

dd.MM.yyyy hh24:mi:ss

我试过这样:

string cre_date = "convert(to_date,'" + dr_art_apa["CreationDateTime"] + 
"', 'dd.MM.yyyy hh24:mi:ss')";

但没什么,所以帮助别人!!!

【问题讨论】:

  • 我也试过这个 cre_date = string.Format("to_timestamp('{0:dd.mm.yyyy hh24:mi:ss}','dd.mm.yyyy hh24:mi:ss' )", dr_art_apa["CreationDateTime"]);但我收到错误 ORA-01850:小时必须在 0 到 23 之间
  • 什么意思 - 什么都没有?运行后 cre_date 包含什么?你希望它包含什么?
  • cre_date 是我传递给 ora 过程的字符串变量,因此它必须包含格式为 dd.mm.yyyy hh:mi:ss 的日期值
  • 你能告诉我们你如何调用存储过程的代码吗?以及获取 cre_date 字符串的存储过程中的类型是什么?
  • com1.CommandText = "TRB01.set_idoc('DOC','1','" + sender + "','" + reciver + "'," + cre_date + ",'" + bod_ID + "')"; com1.ExecuteNonQuery();

标签: c# xml oracle


【解决方案1】:

也许你可以这样尝试:

com1.CommandText = "TRB01.set_idoc('DOC','1','" + sender + "','" + reciver + "'," +
                    "to_timestamp_tz('"+ cre_date + "','yyyy-mm-dd\"T\"hh24:mi:ss:TZH:TZM'),'" + 
                     bod_ID + "')"; 
com1.ExecuteNonQuery();

虽然更好的解决方案应该是在 c# 代码中使用 DateTime 并将其添加为 OracleParameter

【讨论】:

    【解决方案2】:

    var dt = DateTime.Parse("2012-02-29T00:00:00+01:00").ToString("dd.MM.yyyy HH:mm:ss");

    【讨论】:

    • in var dt 我必须传递这个:dr_art_apa["CreationDateTime"] 来自数据读取器的值
    • 所以你尝试了 Paul 提到的相同代码,但是像那样吗?:var dt = DateTime.Parse("2012-02-29T00:00:00+01:00").ToString(dr_art_apa["CreationDateTime"]);
    • 我没有收到这个电磁干扰...这个日期“2012-02-29T00:00:00+01:00”并不总是一样,我在数据阅读器中有日期值必须提取,而且那个值总是不同的
    • 是的,这只是一个例子,在你的情况下,使用:var dt = DateTime.Parse(dr_art_apa["CreationDateTime"]).ToString("dd.MM.yyyy HH:mm:ss");
    • 这不起作用,我收到错误:无法从“对象”转换为“字符串”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多