日期值不正确:'2016-06-05T00:00:00 + 05:30'表示MySql中的列''

时间:2016-06-04 23:36:02

标签: mysql xml

我有windows表单应用程序和mysql数据库。 我使用xml字符串来保存表单的详细信息,这里是我的xml

> <DocumentElement>   <Table1>
>     <Qualification>fef</Qualification>
>     <University>fewfewf</University>
>     <Subject>fefwe</Subject>
>     <Grade>ffw</Grade>
>     <Duration>fef</Duration>
>     <StartDate>2016-06-05T00:00:00+05:30</StartDate>
>     <EndDate>2016-06-05T00:00:00+05:30</EndDate>   </Table1> </DocumentElement>

在我的存储过程中我有这个代码

 -- calculate the number of row elements. 
SET @v_row_count  := EXTRACTVALUE(QualificationsXML, CONCAT('count(','/DocumentElement/Table1)'));  
SET @v_row_iterator :=0;
SET @v_node := '/DocumentElement/Table1';

 -- loop through all the row elements    

WHILE @v_row_iterator < @v_row_count DO
    SET @v_row_iterator:=@v_row_iterator+1;
    SET @v_row := CONCAT(@v_node,'[',@v_row_iterator,']');

    INSERT INTO emp_qualifications VALUES (
        EmpNo,
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/Qualification')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/University')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/Subject')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/Grade')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/Duration')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/StartDate')),
        EXTRACTVALUE(QualificationsXML, CONCAT(@v_row,'/EndDate'))
    );

END WHILE;   

但是当我试图保存它时给我这个错误

  

日期值不正确:“2016-06-05T00:00:00 + 05:30”列   第1行的'StartDate'

在我的表结构中,我有两列我想存储StartDate和EndDate

> `StartDate , Date,nullable 
> `EndDate ,Date,nullable

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我使用

删除了字符串的时间部分
  

SUBSTRING_INDEX(extractValue一起(QualificationsXML,   CONCAT(@v_row, '/起始日期')), 'T',1),

     

SUBSTRING_INDEX(extractValue一起(QualificationsXML,   CONCAT(@v_row, '/结束日期')​​), 'T',1)

谢谢@ peter4499