在sql中的xmlstring中拆分多个datetime列 [英] to split multiple datetime column in xmlstring in sql

查看:53
本文介绍了在sql中的xmlstring中拆分多个datetime列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我希望将datetime列作为单独的行获取,现在作为xmlstring中的单个列存在。下面是xmlstring。



Hi,

I want to get datetime columns as seperate rows which is now present as a single columnin an xmlstring.Given below is the xmlstring.

<DocumentElement>
  <PartInfo>
    <ID>0</ID>
    <Name>QVR</Name>
    <PartNo>A11</PartNo>
    <SerialNo>453</SerialNo>
    <Parameter>C-11</Parameter>
    <InstalledDate>2013-02-04T17:16:56.383+05:30</InstalledDate>
    <InstalledTill>2013-02-15T17:16:56.3830837+05:30</InstalledTill>
  </PartInfo>
  <PartInfo>
    <ID>1</ID>
    <Name>EAFR</Name>
    <PartNo>B07</PartNo>
    <SerialNo>32</SerialNo>
    <Parameter>B-16</Parameter>
    <InstalledDate>2013-02-18T17:17:44.589+05:30</InstalledDate>
    <InstalledTill>2013-02-28T17:17:44.589+05:30</InstalledTill>
  </PartInfo>
</DocumentElement>







这里我使用forxml子句来解压mountdate.Then installeddate列显示为单个字符串。但是我希望他们分开列。

喜欢

2013-02-04T17:16:56.383 + 05:30



2013-02-18T17:17:44.589 + 05:30





如何使用[PartInfo] .query(''.// InstalledTill'')中的子字符串来执行此操作。值(''。'' ,''datetime'')forxml子句..



提前致谢..

Lakshmi




here i used forxml clause for extracting the installeddate.Then the installeddate columns are appearing as a single string.but i want them in seperate columns.
like
2013-02-04T17:16:56.383+05:30

2013-02-18T17:17:44.589+05:30


how can i do this using substring within this [PartInfo].query(''.//InstalledTill'').value(''.'',''datetime'') forxml clause..

Thanks in advance..
Lakshmi

推荐答案

您好b $ b以下是您的答案:



Hi Here is your answer:

using System;
using System.Xml.Serialization;
using System.IO;
using System.Xml;
using System.Text;

namespace Test
{
    [Serializable]
    [XmlRoot("DocumentElement")]
    public class Documentelement
    {
        [XmlElement]
        public PartInfo[] PartInfo { get; set; }
    }

    public class PartInfo
    {
        [XmlElement]
        public int ID { get; set; }
        public string Name { get; set; }
        public string PartNo { get; set; }
        public int SerialNo { get; set; }
        public string Parameter { get; set; }        
        public DateTime InstallDate { get; set; }
        public DateTime InstallTill { get; set; }
    }

    public class Test
    {

        private PartInfo details_1()
        {
            PartInfo details = new PartInfo
            {
                ID = 0,
                Name = "QVR",
                PartNo = "A11",
                SerialNo = 453,
                Parameter = "C -11",

                // This you should add as date time,  I just used the string to parse your time that you showed in your example.
                InstallDate = DateTime.Parse("2013-02-04T17:16:56.383+05:30"),
                InstallTill = DateTime.Parse("2013-02-15T17:16:56.3830837+05:30")
            };
            return details;
        }

        private PartInfo details_2()
        {
            PartInfo details = new PartInfo
            {
                ID = 1,
                Name = "EAFR",
                PartNo = "B07",
                SerialNo = 32,
                Parameter = "B-16",

                // This you should add as date time,  I just used the string to parse your time that you showed in your example.
                InstallDate = DateTime.Parse("2013-02-18T17:17:44.589+05:30"),
                InstallTill = DateTime.Parse("2013-02-28T17:17:44.589+05:30")
            };
            return details;
        }

        public void setXmlValues()
        {            
            Documentelement testOut = new Documentelement { PartInfo = new[] { details_1(), details_2() }};

            xml_serialise(testOut);

            Documentelement testIn = xml_deserialise();
            int val = testIn.PartInfo[0].ID;
            DateTime dt = testIn.PartInfo[0].InstallDate;
            string shortTime = dt.ToShortTimeString();

        }


        public void xml_serialise(Documentelement test)
        {
            XmlSerializer ser = new XmlSerializer(typeof(Documentelement));


            using (TextWriter writer = new StreamWriter("test.xml"))
            {
                ser.Serialize(writer, test);
            }
        }

        public Documentelement xml_deserialise()
        {
            XmlSerializer ser = new XmlSerializer(typeof(Documentelement));

            Documentelement test;

            using (TextReader writer = new StreamReader("test.xml"))
            {
                test = (Documentelement)ser.Deserialize(writer);
            }

            return test;
        }
    }
}







我希望这会有所帮助。



问候

Jegan




I hope this helps.

Regards
Jegan


这篇关于在sql中的xmlstring中拆分多个datetime列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆