如何在不丢失数据的情况下将Varchar类型列更改为Date类型列

时间:2018-07-26 05:10:52

标签: mysql mysqli

在我的数据表中,有一个名为“ journeydate”的列,该列为Varchar类型,其包含的数据为DD / MM / YYYY格式,现在我现在需要的是将varchar类型转换为具有相同的Date类型列数据,但格式为YY-mm-DD。

如何在不丢失现有数据的情况下做到这一点。

Screenshot of Database Table

1 个答案:

答案 0 :(得分:0)

转化:

update tbl set jdate=str_to_date(journeydate, '%d/%m/%Y'); 

您应该分三步进行转换:

  1. 创建类型为date(例如jdate)的列
  2. 用当前journeydate列中的值填充该列。 (使用我上面发布的转换。)
  3. 一旦确定所有查询仍然不依赖于journeydate属于varchar类型,现在就可以重命名这两列。

作为最后一个可选步骤,您可以删除过时的varchar列。我会保留一段时间以检查可能的转换错误。