2011-07-16 30 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