select * from session_history where create_time>'2011-06-27' and end_time<'2011-06-30'这个sql语句有什么错误吗?   执行查询 报错 "无效月份"! <ResponseData>
         <ODRMSessionHistory id="1">
                   <ODRMSession
                            componentName="physerver-vss01"
                            ODSessionID="3c539b53-10e7-481e-809f-5aeaee9b3c7e"
                            setupDate="20110525T015118.912"
                            teardownDate="20110525T015253.252"
                            ODRMIpAddr="80.3.210.110"
                            SMIpAddr="80.3.230.2"
                            sessionGroup="NGOD-TEST0"
                            resultcode="200"
                            >
                                     <PlayoutHistory time="20110525T015253.252"
>                                            <StreamResources
                                                        ID="0"
                                                        SOP="Boston.Pump1.1"
                                                        filename="Boston.Pump.volume1A"
                                                        providerID="provider1.com"
                                                        assetID="STMV2011051918523930"                                                        segmentNumber="1"
                                                        />
                                               <EventHistory>
                                                        <StartStreamEvent
                                                                 time="20110525T015119.305"
                                                                 streamResourcesID="0"
                                                                 NPT="0.000"
                                                                 newState="PLAY"
                                                                 scale="1.000000"
                                                                 />
                                                        <EndEvent
                                                                 time="20110525T015253.252"
                                                                 streamResourcesID="0"
                                                                 reason="USER"
                                                                 NPT="0.840"
                                                                 description="User stop"
                                                                 code="200"
                                                                 />
                                     </EventHistory>
                            </PlayoutHistory>
                   </ODRMSession>
         </ODRMSessionHistory>
</ResponseData>
我如何获得红色部分 assetID的值?
我已经这样写了  可是 还是获取不到SAXReader reader = new SAXReader();
Document document = null;
document = reader.read(new File("newFile.xml"));
Element root = document.getRootElement();
System.out.println("根节点" + root);
                  Attribute attribute=root.attribute("assetID" );
System.out.println("assetID节点"+attribute);assetID节点 null
高手帮帮忙!!
谢谢了!

解决方案 »

  1.   

    把sql语句中时间‘2011-06-27’和‘2011-06-30’分别改为‘2011-6-27’和‘2011-6-30’就OK了
      

  2.   


    谢一个先!  
    去掉那个0了  不过还是不行!还是“无效月份”对了 补充一句  oracle数据库!
      

  3.   

    是不是格式不对啊,to_date试试呢
      

  4.   

    对oracle不太熟悉  !!! 不知道oracle查询日期的格式是什么?
      

  5.   

    你查下表里create_time的格式,肯定是两个格式不一样
    比如表里格式为05-JUN-07,你就把'2011-06-27' 改为'27-JUN-11'
      

  6.   

    表里边 这样存的
    create_time                           end_time
    27-6月 -11 09.33.05.913000 上午        01-7月 -11 03.34.54.317000 下午然后我改成select * from session_history where create_time>'27-6-11' and end_time<'30-6-11'
    还是提示 无效月份
      

  7.   

    Element root = document.getRootElement();
    Iterator it = root.elementIterator();
    while(it.hasNext()){
    Element temp = (Element) it.next();
    Iterator it2 = temp.elementIterator();
    while(it2.hasNext()){
    Element temp2 = (Element) it2.next();
    Iterator it3 = temp2.elementIterator();
    while(it3.hasNext()){
    Element temp3 = (Element) it3.next();
    Iterator it4 = temp3.elementIterator("StreamResources");
    while(it4.hasNext()){
    Element sr = (Element) it4.next();
    for(Iterator attrs = sr.attributeIterator();attrs.hasNext();){
    Attribute att = (Attribute) attrs.next();
    if("assetID".equals(att.getName())){
    System.out.println(att.getValue());
    }
    }

    }
    }
    }
    }
      

  8.   

    汗 你的改后的格式和表里还不一样 肯定报错了
    你看create_time是什么类型, 估计是timestamp吧
      

  9.   


    select * from session_history where create_time> to_date('2011-06-27', 'yyyy-mm-dd') and end_time<to_date('2011-06-307', 'yyyy-mm-dd')
    至于dom4jassetID是 StreamResources 这个element下的属性,所以要先找到 Element StreamResources 然后再用Attribute方法获取
      

  10.   

    select * from history  t where t.create_time >TO_DATE('2011-06-27','yyyy-mm-dd') and t.end_time<TO_DATE('2011-06-30','yyyy-mm-dd')
      

  11.   

    create_time>to_date('2011-6-27', 'yyyy-MM-dd')and end_time<to_date('2011-6-30', 'yyyy-MM-dd')
      

  12.   

    sql:select * from session_history where create_time> to_date('2011-06-27', 'yyyy-mm-dd') and end_time<to_date('2011-06-307', 'yyyy-mm-dd')DOM4J
    SAXReader reader = new SAXReader();
            Document document = null;
            document = reader.read(new File("newFile.xml"));
            Element root = document.getRootElement();
            System.out.println("根节点" + root);
                      Attribute attribute=root.attribute("assetID" );
            System.out.println("assetID节点"+attribute);
    改成:
     SAXReader reader = new SAXReader();
     Document document = null;
     List list = document.selectNodes("//StreamResources/@assetID" );
            Iterator iter=list.iterator();
              while(iter.hasNext()){
                  Attribute attribute=(Attribute)iter.next();
                  System.out.println(attribute.getValue());
                  
             } 
      

  13.   

    1、sql:
    oracle数据库时间字段要用to_date()
    to_date('2011-06-27','yyyymmdd');2、dom4j:Element root = document.getRootElement();
    System.out.println("根节点" + root);
    Attribute attribute=root.attribute("assetID" );
    LZ用document.getRootElement();得到的只是根结点的Element
    要得到其下子节点或孙子节点,还需要往下遍历。
    或用root.selectNodes("");得到指定结点,然后再取其属性,value等值。
    或用XPath指定到哪个子结点
      

  14.   

    select * from session_history where create_time>'2011-06-27' and end_time<'2011-06-30'直接这样写都没错呀..
      

  15.   

    1.sql语句
    select * 
    from session_history 
    where create_date > to_date('27-6-11','dd-MM-yy')
    and end_time < to_date('30-6-11','dd-MM-yy')2.至于dom4jassetID是 StreamResources 这个element下的属性,所以要先找到 Element StreamResources 然后再用Attribute方法获取