2010-01-17 35 views
1

我有了像一個格式的日期字段(字段)一個CSV文件中的日期字段:的mysqlimport - 導入不正確的格式

17DEC2009 

當我做的mysqlimport,其他領域已正確導入,但此字段仍爲0000-00-00 00:00:00

如何正確導入此日期?我必須首先在文件上運行sed/awk命令才能將其轉換爲適當的格式?如果是這樣,那會是什麼樣子?這個月是否被拼寫出來而不是數字?

回答

5

STR_TO_DATE()使您可以將字符串轉換爲在查詢中合適的日期。它期望日期字符串和格式字符串。

檢查手冊條目中的示例以找出正確的格式。

我認爲它應該是沿着%d%b%Y(但%b應該產生像Dec而不是DEC字符串,所以你將不得不嘗試它是否工作)。

0

下面是我用來解決類似問題的方法。我的用例有點複雜,有很多列,但在這裏簡單地介紹解決方案。 我有人名錶(Id int autogen,名稱varchar(100),生日日期)和數百萬的數據(名稱,DOB)需要從CSV文件填充。

  1. 在人表中創建名稱類似於(varchar_DOB varchar(25))的附加列。
  2. 使用mysqlimport實用程序將數據導入到列(name,varchar_DOB)中。
  3. 使用str_to_date(varchar_DOB,'format')函數執行更新DOB列的更新查詢。
  4. 現在,我預計數據填充DOB列。

同樣的邏輯可以以操作的方式甚至其它類型的數據格式如雙,TIME_STAMP等

的被施加