我正在嘗試使用LOAD LOCAL INFILE將一個xml文件導入到MySQL中,並在執行該操作時轉換日期格式。 XML文件中,notacts.xml
,看起來是這樣的(只有一個元素設置<ROW/>
所示):如何在使用LOAD LOCAL INFILE時在MySQL中轉換日期?
<?xml version='1.0' ?>
<ROW>
<field name="ID">12779293</field>
<field name="AA_NUMBER">162</field>
<field name="CONTENT">some text</field>
<field name="DATE">30-12-1643</field>
<field name="FA_NUMBER">5115.1</field>
<field name="LAST_CHANGE_DATE">10-07-15</field>
</ROW>
我的MySQL數據庫表「中扮演」包含使用XML的領域元素的屬性的名稱領域文件。當我使用這個SQL:
LOAD XML LOCAL INFILE 'notacts.xml' INTO TABLE acts
ROWS IDENTIFIED BY '<ROW>'
SET recordID=NULL
一切都攝入很好,除了這兩個日期:數據庫字段「DATE」得到的值的所有條目:「0000-00-00」(中日範例是:1643年12月30日),數據庫字段「LAST_CHANGE_DATE」的值爲:2010-07-15(示例中的日期是2015年7月10日)。
當我嘗試通過添加這兩條線到SQL來解決這個問題:
SET DATE = STR_TO_DATE(@DATE, '%d-%m-%Y'),
LAST_CHANGE_DATE = STR_TO_DATE(@LAST_CHANGE_DATE, '%d-%m-%y')
我得到一個錯誤:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET DATE = STR_TO_DATE(@DATE,'%d-%m-%Y')' at line 4
我的MySQL版本是5.6.16。
我覺得問題就在於,在兩條額外的線條我稱之爲'@DATE
和@LAST_CHANGE_DATE
,而不是像這樣:@field name="DATE"
和@field name="LAST_CHANGE_DATE"
,但我不知道如何解決這個問題,所以任何建議應付與此將不勝感激。
感謝您的建議,我試過了,但我仍然得到了同樣的錯誤消息... – Cannedit
@Cannedit你創建的最終命令是什麼? – gaganshera
感謝您的提示,儘管我一開始並沒有正確理解它:-) – Cannedit