2011-07-16 41 views
3

我想複製表的數據到另一個,但我有一個列的痛苦。如何重新格式化MySQL列的日期值?

  • 表A具有柱VARCHAR(10)類型 DP這樣 'DD/MM/YYYY' 保持在字符串格式日期值。

  • 表B具有柱DC 類型DATE保持日期這樣值日期格式: 'YYYY-MM-DD'。

如果我將列DP更改爲鍵入DATE,則其所有值將轉換爲「0000-00-00」。 如果我嘗試直接複製,則會引發防止複製的錯誤,因爲DP值不會在列DC中被識別爲DATE值。

因此,無論是找到一種方法來重新格式化DP值爲DATE值尊重模式'yyyy-MM-dd',然後複製或找到一些功能將法國日期轉換爲英文日期,同時複製。

有沒有人有線索? 關心!

回答

3

STR_TO_DATE函數可以爲您處理此問題。

STR_TO_DATE(`DP`, "%d/%m/%Y") 
+0

現在沒事了!謝啦。 – Hanynowsky

3

您需要3個查詢做到這一點:

  1. 改變表添加DATE數據類型
  2. 使用UPDATE查詢與STR_TO_DATE功能的新列將您的日期,新列在適當的格式
  3. ALTER表中刪除舊列並重命名爲新列應該是
+0

就是這樣。該功能取得了訣竅。非常感謝!希望你不要介意我接受@Brad答案,因爲它帶有確切的使用模式。 – Hanynowsky

+0

SUre的事情。我自己高舉他。 ;) – Mchl